持续集成-Jenkins

一、是什么

1概念


持续集成频繁地(一天多次)将代码集成到主干。

持续交付频繁地将软件的新版本,交付给质量团队或者用户,
以供评审。

阅读全文

Maven

前言
公司项目升级转换成maven项目。包括搭建私服,项目结构升级为maven。

搭建私服
搭建私服目的

主要原因是老项目好多jar包进行过改造编译,还有一些jar不确定版本,有一些第三方jar中央仓库不存在。

阅读全文

GitHub入门笔记

GitHub使用前期准备

设置ssh

通过邮箱生成公钥和私钥。有个疑问可以同时存在多个私钥吗?

可以,生成的私钥和公钥可以更改名字这样就能区分不同的密钥

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):/root/.ssh/id_rsa_aaa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa_aaa.
Your public key has been saved in /root/.ssh/id_rsa_aaa.pub.
The key fingerprint is:
9b:92:f6:1f:d2:72:bd:72:19:45:42:5f:e4:65:33:64 root@AY140122145815620396Z
The key's randomart image is:
+--[ RSA 2048]----+
| .. .E=|
| ..o++|
| o. .|
| . |
| S . |
| . + .. |
| + = + .o |
| . o +..o. |
| ...o. |
+-----------------+

阅读全文

java HashMap学习

简单讲解下HashMap的原理:HashMap基于Hash算法,我们通过put(key,value)存储,get(key)来获取。当传入key时,HashMap会根据key.hashCode()计算出hash值,根据hash值将value保存在bucket里。当计算出的hash值相同时怎么办呢,我们称之为Hash冲突,HashMap的做法是用链表和红黑树存储相同hash值的value。当Hash冲突的个数比较少时,使用链表,否则使用红黑树。

阅读全文

java LinkedList学习

LinkedList详解

查找

ArrayList两种查找 get(index) get(Object)(内部还是get(index)去遍历的) 因为是连续的存储单元。所以遍历很快。

基本属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
* LinkedList实现list和Deque,实现所有list可选操作,并且可以包含null.
*
* 并且LinkedList是双向链表,操作索引可以从开始或者结尾或者指定位置进行遍历
*
* linkedList不是线程安全的
* 如果多线程同时操作修改操作是不安全的
*
* 迭代器快速报错 。在迭代器开始后的任何修改都会报错
*/
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable{
transient int size = 0;
/**
* Pointer to first node.
* Invariant: (first == null && last == null) ||
* (first.prev == null && first.item != null)
*/
transient Node<E> first;
/**
* Pointer to last node.
* Invariant: (first == null && last == null) ||
* (last.next == null && last.item != null)
*/
transient Node<E> last;
//内部类
private static class Node<E> {
E item;
Node<E> next;
Node<E> prev;
Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}

阅读全文

日志

流行日志的种类 slf4j、log4j、logback

slf4j

有些特点需要优先考虑

1:slf4j是一个抽象层日志框架,使用slf4j可以是系统独立于任何特定的日志库。

它可以和各种框架结合输出日志,
例如log4j,logback,slf4j-simple。这些特点使得有些提供依赖的jar包内部开发时使用slf4j日志
对外部使用的日志框架不产生依赖问题。(如果内部jar使用的log4j,
而外部的系统采用logback.科恩那个导致内部日志输出问题)

阅读全文

MyBatis 3.* Study

新项目开始需要根据表生成代码,实现逆向工程因为使用的是Mybatis3决定使用Mybatis-generator来生成代码

学习过程

  1. maven工程 查找依赖jar包(正常)

阅读全文

redis学习

1.特点

  • 存放在内存中读写速度快
  • 单线程(只使用一个cpu,线程安全)
  • 五种数据结构(String list set hash sortSet)

阅读全文

java ArrayList学习

ArrayList&LinkedList 区别

ArrayList是用数组实现。linkedList是链表实现。
ArrayList数组实现查找快,新增删除慢。LinkedList链表新增删除快查找慢。
为什么?
数组是申请的一块连续的内存,新增就是不断的申请拷贝数据。删除的话先查到这个数据,删除它,然后后面的所有数据都要移动。这样的数据结构查询很快。
链表的话是不连续的内存每次查找涉及到指针移动寻址。

阅读全文

Mysql索引总结

使用索引的目的是把数据再次排序,提高查询速度,所以联合索引的顺序很重要,很大程度上决定查询速度

  • 提高数据库检索效率
  • 避免排序和临时表
  • 将随机I/O变为顺序I/O

阅读全文