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