一. JDK体系结构与跨平台特性介绍
二. JVM内存模型深度剖析
-
按照线程是否共享来划分
TLAB
(Thread Local Allocation Buffer)线程本地分配缓存区
,这是一个线程专用的内存分配区域
由于对象一般会分配在堆
上,而堆是全局共享的。因此在同一时间,可能会有多个线程在堆上申请空间。因此,每次对象分配都必须要进行同步,在竞争激烈的场合分配的效率又会进一步下降, JVM使用TLAB来避免多线程冲突,在给对象分配内存时,每个线程使用自己的TLAB,这样可以避免线程同步,提高了对象分配的效率 -
JVM内存模型清晰版(结合代码分步解析)
public class Math {
private static final int INIT_DATA = 666;
private static User user = new User();
public int compute(){
int a = 1;
int b = 2;
int c = (a + b) * 10;
return c;
}
public static void main(String[] args) {
Math math = new Math(