Java规范与细节
G_axis
搬砖程序猿
展开
-
Java细节与规范:ArrayList为何建议赋予默认值及其扩容机制
集合是编程中使用最广泛的类之一,理论上来说是可以无限变大的容器,但是容器变得非常大的时候,初始容量就会非常重要,以下为原因。 ArrayList的扩容机制是比较消耗资源的,首先先看ArrayList的扩容机制源码:public boolean add(E e) { ensureCapacity(size + 1); elementData[size原创 2017-10-18 12:49:25 · 758 阅读 · 0 评论 -
Java细节与规范:HashMap扩容-ReSize
首先要先了解何时需要进行扩容。 在HashMap的源码中有一个非常重要的常量:static final float DEFAULT_LOAD_FACTOR = 0.75f;//负载因子明确几个变量: Capactity: Hashmap的当前长度(2的n次幂); LoadFActor: 负载因子,默认为0.75f; 在每次put之后,会有下面这个判断:if (++size原创 2017-11-20 17:25:09 · 1905 阅读 · 0 评论 -
单例模式的升级之路
单例模式:简单的说,就是一个类只能构建一个对象的设计模式。 创建一个线程安全的单例模式。原创 2017-11-27 16:10:38 · 301 阅读 · 0 评论 -
Java8新特性Stream使用心得之:groupingBy与partitioningBy
业务开发过程中,经常会需要将集合中的数据进行聚合操作。比如:取出订单集合中有效订单的数据、按照订单类型做分组等等。以前的处理方式会遍历这个集合然后通过业务判断做处理,虽然可用,但远不够高效且笨拙。为什么需要StreamStream是Java8的一大亮点,是对集合对象(Collection)功能的增强,进行聚合操作、批量数据操作。同时借助于Lambda表达式,提高编程效率和可读性。此外,Stre...原创 2019-01-16 19:03:37 · 4004 阅读 · 1 评论