ArrayList源代码分析

此篇主要解析 ArrayList 的源码处理逻辑继承关系几个有意思的参数// 默认初始容量private static final int DEFAULT_CAPACITY = 10;// 共享空数组private static final Object[] EMPTY_ELEMENTDATA =
阅读更多

StringBuffer与StringBuilder源代码分析

背景想了解StringBuffer与StringBuilder之间的差别以及他们是通过何种方式去实现其功能的。差别大致了解,线程安全与不安全。更感兴趣的是其实现方式。AbstractStringBuilder两者都继承自此抽象类。该类提供了一些StringBuffer与StringBuilder公用
阅读更多

关于final修饰符的一点思考

背景在看HashMap的源代码的时候,发现其中的每个键值对的类型为一个Node<K, V>,其中包含了一个成员变量hash,被final修饰符修饰,但是并没有被初始化。这就有点奇怪了。为什么可以在声明时不直接赋值?是因为不是所有的被final修饰的值都要在声明时马上赋值吗?之前看到的关于
阅读更多

Java中的Threadlocal源代码学习

ThreadLocal是什么回过头,想想ThreadLocal实现了什么样的功能。举个例子,当不同的线程都去执行同样一个语句以获得当前线程的Looper时,要怎么实现?或许吧,ThreadLocal就实现了这样一个功能。在Looper中,申明了一个如下的静态变量,说明只有一个。static fina
阅读更多