摘要: ArrayList、LinkedList、HashMap中都有一个字段叫modCount。这个字段的用途,在ArrayList的父类AbstractList源码中有注释,说的很清楚: protected transient int modCount = 0; 为了显示美观,对jdk原文注释进行了换行 阅读全文
posted @ 2017-11-09 10:37 facelessvoidwang 阅读(7563) 评论(0) 推荐(2)
摘要: 集合算是java中最常用的部分了,阅读该部分jdk代码可以让我们更加清楚的了解其实现原理,在使用时也能心中有数,有利于写出高质量的代码。 ArrayList 底层数组实现,初始长度10,超过长度后的自增实际是数组拷贝,拷贝用的System.copy()调用了本地方法,效率相对较高。 先看new Ar 阅读全文
posted @ 2017-11-09 10:32 facelessvoidwang 阅读(255) 评论(0) 推荐(0)
摘要: 我们都知道Integer是int的封装类,提供了一些类型转换等工具方法,有一个-128-127的缓存,而且是final的。 干货: Integer是final 的,因此对Integer的操作返回的都是另一个新对象,而不是修改原来的值。 Integer的值存在value属性中,Integer的hash 阅读全文
posted @ 2017-11-09 10:27 facelessvoidwang 阅读(422) 评论(1) 推荐(0)
摘要: 我们平常说,java中char占2个字节,可又说汉字在不通的编码格式中所占的位数是不同的,比如gbk中汉字占2个字节,utf8中多数占3个字节,少数占4个。而所有汉字在java程序中我们都可以简单的用 char c = '字' 表示; 那么问题来了,在java程序运行的时候,究竟汉字占几个字节呢? 阅读全文
posted @ 2017-11-09 10:21 facelessvoidwang 阅读(2459) 评论(0) 推荐(0)