JDK是什么?
jdk是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。jdk是整个java开发的核心,它包含了JAVA的运行环境和JAVA工具。相对而言,没有jdk的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE。
JDK源码的重要性
JDK源码的重要性不言而喻,平时的面试、深入学习等都离不开JDK的源码。当然,JDK源码是非常优秀的代码,我们之所以阅读JDK源码,就是为了理解底层原理、学习优秀的设计模式和思想。不过JDK源码也是相当难啃的知识点,我们一定要有信心,不要畏难,硬着头皮去学习,一定会有很大的收获的。
说到JDK小编手里正好有一份阿里P9大牛甩出来的一份 JDK源码剖析笔记!下面会给大家展示出来,看了就不亏!
阿里业务架构师手写JDK源码笔记目录
JDK源码笔记优质内容节选
CopyOnWrite
CopyOnWrite指在“写”的时候,不是直接“写”源数据,而是把数据拷贝一份进行修改,再通过悲观锁或者乐观锁的方式写回去。那为什么不直接修改,而是要拷贝一份修改呢?这是为了在“读”的时候不加锁。下面通过几个案例来展现CopyOnWrite的应用。
CopyOnWriteArrayList
和ArrayList一样,CopyOnWriteArrayList的核心数据结构也是一个数组,代码如下。
下面是CopyOnArrayList的几个“读”函数:
既然这些“读”函数都没有加锁,那么如何保证“线程安全”呢?答案在“写”函数里面。
其他“写”函数,例如remove和add类似,此处不再详述。
核心数据结构
平时学习源码的时候,不能只是光看,一定要动手调试,在调试的过程中阅读源码,做记录,写注释,缺一不可。将输入转化为输出,坚持下去。