九千万代码的梦想

红黑树

前言 红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 在JAVA中,许多跟排序有关的实现类都涉及到红黑树,最典型的如TreeMap。 本文主要就红黑树的特性和红黑树在插入和删除元素时的变化过程做详细的说明,以便帮助读者理解红黑树,当然,也方便自己记忆和查阅。 红黑树特性 红黑树有5个特性: 特性...

maven打包所有依赖成一个jar包发布

前言 在使用maven构建多模块工程的时候,有些模块会打成jar包,有时候我们会依赖一些没有发布在maven仓库的第三方jar包,这个时候 打包就会比较麻烦了,因为其他使用这个模块的包不一定能找到这些没有发布在maven仓库的第三方jar包,当然我们可以将这些包发布到 本地仓库,不过这不利于多人协作开发,最好的方式还是将这些第三方jar包直接打包到这个模块中一起发布。 依赖配置 要依赖...

使用hyper-v搭建nat内部网络

前言 很多时候,我们开发应用的时候,需要搭一整套完整的开发环境,对于大型的应用,可能开发环境需要多台机器运行不同的服务。 为了能在自己的单台电脑上搭建整套开发环境,一般会选择使用虚拟机,直接安装多台虚拟机搭建。 使用虚拟机的时候,就带来了一个网络问题: 虚拟机和宿主机之间的网络通讯 虚拟机和虚拟机之间的网络通讯 虚拟机和互联网的网络通讯问题 所有虚拟机和物理机之间的相对...