深入理解Java虚拟机
清文
低调前行
展开
-
JDK1.6聚合框架bug:c.toArray might (incorrectly) not return Object[] (see 6260652)
转自这里写链接内容JDK1.6集合框架bug:c.toArray might (incorrectly) not return Object[] (see 6260652)最近在看JDK的源码:CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话看不懂。public ArrayList(Collection<? extends E> c转载 2016-02-26 15:35:53 · 452 阅读 · 0 评论 -
AtomicInteger源码分析
转载自http://www.cnblogs.com/lcngu/p/5405890.html 问题背景 最近在看LinkedBlockingQueue看到了其中的count使用AtomicInteger修饰,之前也看过AtomicInteger的一些解释,也是似懂非懂的,今天深入的了解了其实现方式,学到了很多东西。 基础介绍 要对AtomicInteger转载 2016-05-20 17:00:18 · 246 阅读 · 0 评论 -
第12章 Java内存的模型与线程
转载自 http://freecoder.com.cn/?p=289 一、JAVA内存模型 1.1 主内存与工作内存 Java内存模型规定了所有的变量都存储在主内存(Main Memory)中,每条线程还有自己的工作内存(Working Memory)。线程的工作内存中保存了该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(读取、赋值等)都必须转载 2016-05-20 17:05:29 · 248 阅读 · 0 评论 -
第13章 线程安全与锁优化
转载自http://freecoder.com.cn/?p=322 一、线程安全 1.1 Java语言中的线程安全 按照线程安全的“安全程度”由强至弱,可以将Java语言中各种操作共享的数据分为以下5类:不可变、绝对线程安全、相对线程安全、线程兼容和线程对立。 1.不可变 如果共享数据是一个基本数据类型,那么只要在定义时使用final关键字修饰它就可以保证它是不可变的转载 2016-05-20 17:06:21 · 283 阅读 · 0 评论