摘要:
java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。在此之前,主流程序语言(如C/C++等)直接使用物理硬件和操作系统的内存模型,因此,会由于 阅读全文
摘要:
对象内存布局 在Hotspot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头,实例数据,对齐填充。 1.对象头 1.1 存储对象自身的运行时数据(mark word):哈希码,gc分代年龄。 1.2 Class指针:通过该指针确定该对象是哪个类的实例。 在64位系统中,class指针占4B 阅读全文
摘要:
volatile关键字 作用是使变量在多个线程间可见。 关键字volatile可以说是Java虚拟机提供的最轻量级的同步机制。 一个变量被定义为volatile后,它将具备两种特性: 1、保证此变量对所有线程的"可见性",所谓"可见性"是指当一条线程修改了这个变量的值,新值对于其它线程来说都是可以立 阅读全文
摘要:
对LinkedList使用普通的for循环,这是一种非常糟糕的做法。这是数据结构的问题。 ArrayList和LinkedList使用普通for循环速度的测试: 不断增大LIST_SIZE,我用表格表示一下运行结果: 从运行结果我们看到,按倍数增大List容量,ArrayList的遍历显得比较稳定, 阅读全文