标签 源码系列 下共有 17 篇文章
jdk源码系列-Java到底是值传递还是引用传递?
jdk源码系列-Java到底是值传递还是引用传递?
首先,不要纠结于 Pass By Value 和 Pass By Reference 的字面上的意义,否则很容易陷入所谓的“一切传引用其实本质上是传值”这种并不能解决问题无意义论战中。更何况,要想
jdk源码系列-Thread.sleep(0)和Thread.sleep(1)的区别
jdk源码系列-Thread.sleep(0)和Thread.sleep(1)的区别
某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么?Thread.S
jdk源码系列-Java中ArrayList、LinkedList和Vector的联系与区别
jdk源码系列-Java中ArrayList、LinkedList和Vector的联系与区别
毫无疑问,List是一种非常基础的数据结构,翻译过来就是列表。正如它的名字所示,List表示的是一个有序(插入顺序)的元素序列。在Java的
jdk源码系列-类的初始化顺序
jdk源码系列-类的初始化顺序
大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段
jdk源码系列-AtomicInteger
jdk源码系列-AtomicInteger
JDK 里面提供的以 Atomic* 开头的类基本原理都是一致的, 都是借助了底层硬件级别的 Lock 来实现原子操作的。 本文以 AtomicInteger 为例进行讲述, 其他的类似。阅读本文前建议先阅
jdk源码系列-ConcurrentHashMap
jdk源码系列-ConcurrentHashMap
ConcurrentHashMap 是将锁的范围细化来实现高效并发的。 基本策略是将数据结构分为一个一个 Segment(每一个都是一个并发可读的 hash table, 即分段锁)作为一个
jdk源码系列-Integer
jdk源码系列-Integer
对于 Integer 这个 Java 程序员几乎天天使用的类,使用上却可以看出普通程序员和优秀程序员区别。 深入代码 在创建数字 1 的对象时, 大多数人会使用 new Integer
jdk源码系列-ThreadLocal
jdk源码系列-ThreadLocal
这个类提供本地线程变量。不同于一般的变量,这些变量在他们各自的线程里通过 get、set 访问一个它自己的变量,这是一个独立初始化的变量副本。在
jdk源码系列-内存模型
jdk源码系列-内存模型
为了让程序员忽略掉各种硬件和操作系统的内存访问差异, 也既无需关心不同架构上内存模型的差异, Java 在代码和硬件内存模型间又提供了一个 Java 内存模型。 并
jdk源码系列-深入了解IO的工作机制
jdk源码系列-深入了解IO的工作机制
I/O 问题是任何编程语言都无法回避的问题,可以说 I/O 问题是整个人机交互的核心问题,因为 I/O 是机器获取和交换信息的主要渠道。在当今这个数据大爆炸时代,
jdk源码系列-NIO
jdk源码系列-NIO
Java NIO和IO之间第一个区别是, IO是面向流的, NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节, 直至读取所有字节, 它们没
jdk源码系列-顺序索引
jdk源码系列-顺序索引
很多java开发的小伙伴都会阅读jdk源码,然而确不知道应该从哪读起。以下为通常所需阅读的源码范围。 标题为包名,后面序号为优先级1-4,优先