502 Maven-仓库

Maven使用仓库来保存构建后的artifact以及artifact依赖的其它内容。例如:jar包,插件,POM文件等等。

Maven的仓库分为以下三种。

  • 本地仓库
  • 远程仓库
  • 中央仓库
点我阅读更多...

502 Maven-构建生命周期

生命周期、阶段、插件、目标

Maven将项目构建的过程拆解三个生命周期Clean、Defualt、Site。

每个生命周期包含若干个阶段。Clean包含3个阶段pre-clean、clean和post-clean,Defualt包含23个阶段,Site包含3个阶段。

点我阅读更多...

502 Maven-标准目录&Profile&POM

Maven标准目录

${basedir}
|-- pom.xml
|-- src
|   |-- main
|   |   `-- java
|   |   `-- resources
|   |   `-- filters
|   |   `-- webapp
|   `-- test
|   |   `-- java
|   |   `-- resources
|   |   `-- filters
|   `-- it
|   `-- assembly
|   `-- site
|-- target
`-- LICENSE.txt
`-- NOTICE.txt
`-- README.txt
点我阅读更多...

002-数据结构与算法-树

二叉树

什么是二叉树

二叉树就是每一个节点,最多只有两个子节点的树。这两个子节点分别是左子节点和右子节点。

特殊的二叉树

  • 满二叉树:每个节点都有两个叶子节点。
  • 完全二叉树:所有叶子节点都在最底下两层,最下一层的叶子节点要么是满的,要么靠左排列,倒数第二层的叶子节点是满的。

下图中2号是满二叉树,3号是完全二叉树。

点我阅读更多...

002-数据结构与算法-哈希算法

什么是哈希算法

哈希算法就是能将任意长度的二进制值映射为固定长度的二进制值(哈希值)的规则。

一个优秀的哈希算法应该满足的条件:

  • 单向。从哈希值不能反向推算出原始数据。
  • 随机。原始数据哪怕只修改了一个Bit,哈希值也大不相同。
  • 高效。即使是很长的文本,也能在快速得到结果。
  • 平均。不同原始数据得到的哈希值均匀分布,避免散列冲突。

常见的哈希算法有MD5、SHA,不过MD5由于已经可以被暴力破解,所以现在常用的是SHA算法。

点我阅读更多...

002-数据结构与算法-散列表

什么是散列表

散列表是一种特殊数组,基于数据可以按照下标随机访问元素的特点。

保存在散列表中的数据都需要有一个key,在保存之前通过散列函数,计算key对应的hash值,然后根据hash值快速定位数据在散列表中的位置。

点我阅读更多...

002-数据结构与算法-线性表

数据结构按照数据存储方式,可以分为线性表和非线性表两大类。

线性表就是数据排列成一条线一样的结构,例如数组、链表、栈、队列。

非线性表自然就是数据按照非线性结构排列了,例如树和图。

点我阅读更多...