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-数据结构与算法-常见排序算法
如何分析一个排序算法
判断一个排序是否符合需求,可以从执行效率、占用内存、稳定性三个方面分析。
002-数据结构与算法-散列表
什么是散列表
散列表是一种特殊数组,基于数据可以按照下标随机访问元素的特点。
保存在散列表中的数据都需要有一个key,在保存之前通过散列函数,计算key对应的hash值,然后根据hash值快速定位数据在散列表中的位置。
002-数据结构与算法-线性表
数据结构按照数据存储方式,可以分为线性表和非线性表两大类。
线性表就是数据排列成一条线一样的结构,例如数组、链表、栈、队列。
非线性表自然就是数据按照非线性结构排列了,例如树和图。