![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
无法逃离的乌托邦
这个作者很懒,什么都没留下…
展开
-
匿名内部类成员变量、局部变量、全局变量的区别及为什么要加final
以下代码,均通过javac命令编译后,再通过JAD反编译工具获取代码实际情况。总结:局部变量必须用final修饰,或者是实际不变的,作用是为了保持数据的一致性。对于引用类型就是说引用地址的一致性,对于基本类型来说就是值的一致性。由于Java实现匿名内部类的方式是capture-by-value。当引用的自由变量是成员变量(没有被static修改的)时,匿名内部类复制的是对象实例,通过对象实例来调用具体的自由变量,这样就保证了外部变量和内部变量的一致性;全局变量时,则内部函数是通过类直接去调用自由变原创 2020-10-12 09:31:30 · 995 阅读 · 0 评论 -
# 深入理解ArrayList集合的初始容量和初始容量为0的两种扩容机制(1.8版本)
浅析ArrayList集合的初始容量和初始容量为0的两种扩容机制(1.8版本)网络上对于ArrayList集合的空参构造是否为0,存在不同的的看法。对此,分析了源码,有以下见解:1.空参构造,集合初始容量必定为0,添加一个元素,扩容为10。2.有参构造,参数为0和集合长度为0时,初始容量为0,添加一个元素扩容为1,再添加一个元素扩容为2,再添加一个元素扩容为3,再添加一个元素扩容为4,再添...原创 2018-09-06 17:05:19 · 2362 阅读 · 2 评论