持续集成-Jenkins
一、是什么
1概念
持续集成:频繁地(一天多次)将代码集成到主干。
持续交付:频繁地将软件的新版本,交付给质量团队或者用户,
以供评审。
前言
公司项目升级转换成maven项目。包括搭建私服,项目结构升级为maven。
搭建私服
搭建私服目的
主要原因是老项目好多jar包进行过改造编译,还有一些jar不确定版本,有一些第三方jar中央仓库不存在。
GitHub使用前期准备
通过邮箱生成公钥和私钥。有个疑问可以同时存在多个私钥吗?
可以,生成的私钥和公钥可以更改名字这样就能区分不同的密钥
12345678910111213141516171819202122 $ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):/root/.ssh/id_rsa_aaaEnter 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 rootThe key's randomart image is:+--[ RSA 2048]----+| .. .E=|| ..o++|| o. .|| . || S . || . + .. || + = + .o || . o +..o. || ...o. |+-----------------+
简单讲解下HashMap的原理:HashMap基于Hash算法,我们通过put(key,value)存储,get(key)来获取。当传入key时,HashMap会根据key.hashCode()计算出hash值,根据hash值将value保存在bucket里。当计算出的hash值相同时怎么办呢,我们称之为Hash冲突,HashMap的做法是用链表和红黑树存储相同hash值的value。当Hash冲突的个数比较少时,使用链表,否则使用红黑树。
LinkedList详解
查找
ArrayList两种查找 get(index) get(Object)(内部还是get(index)去遍历的) 因为是连续的存储单元。所以遍历很快。
基本属性
流行日志的种类 slf4j、log4j、logback
slf4j
有些特点需要优先考虑
1:slf4j是一个抽象层日志框架,使用slf4j可以是系统独立于任何特定的日志库。
它可以和各种框架结合输出日志,
例如log4j,logback,slf4j-simple。这些特点使得有些提供依赖的jar包内部开发时使用slf4j日志
对外部使用的日志框架不产生依赖问题。(如果内部jar使用的log4j,
而外部的系统采用logback.科恩那个导致内部日志输出问题)
ArrayList&LinkedList 区别
ArrayList是用数组实现。linkedList是链表实现。
ArrayList数组实现查找快,新增删除慢。LinkedList链表新增删除快查找慢。
为什么?
数组是申请的一块连续的内存,新增就是不断的申请拷贝数据。删除的话先查到这个数据,删除它,然后后面的所有数据都要移动。这样的数据结构查询很快。
链表的话是不连续的内存每次查找涉及到指针移动寻址。