Java 8系列之重新认识HashMap

摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。
. .

红黑二叉树的删除和插入自平衡操作

AVL自平衡二叉树在教科书上比较常见,因为是最先提出的自平衡二叉树,自然是学术价值比较的高,但是目前工业环境觉得名为红黑二叉树(Red-Black Tree)的自平衡二叉树使用的更为的广泛,比如C++标准库中的有序容器(std::set、std::map),Linux内核中的很多数据结构等,都是用的RBTree来维护管理的。 红黑树,一种平衡二叉树,由于有序插入效率稳定和低复杂度而被运用在各种语言的标准库实现中,比如STL的map,set。 AVL树,课本上最早介绍的平衡二叉树,不知道哪里有用到……个人猜测是算法比较繁琐所以没有红黑树用的广泛?求解。 B+树,数据库索引就是用它实现的,好像操作系统也有用到。 trie树,接触比较少…只知道可以用于字典
. .

如何更好地学习dubbo源代码

Dubbo在使用上可以做到非常简单,不管是Provider还是 Consumer都可以通过Spring的配置文件进行配置,配置完之后,就可以像使用spring bean一样进行服务暴露和调用了,完全看不到dubbo api的存在。这是因为dubbo使用了spring提供的可扩展Schema自定义配置支持。在spring配置文件中,可以像、这样进行配置。 META-INF下的spring.handlers文件中指定了dubbo的xml解析类:DubboNamespaceHandler。像前面的被解 析成ServiceConfig,被解析成ReferenceConfig等等。
. .

LVS+Keepalive 构建高可用Web应用

nginx、lvs、keepalived、f5、DNS轮询,每每提到这些技术,往往讨论的是接入层的这样几个问题: 1)可用性:任何一台机器挂了,服务受不受影响 2)扩展性:能否通过增加机器,扩充系统的性能 3)反向代理+负载均衡:请求是否均匀分摊到后端的操作单元执行
. .