求教JDK1.8内存模型。。。。
看完JVM内存模型一章,大致对各个内存区的作用有了了解,但是细究起来又存在问题,例程代码如下:
public class MemoryDump {
/***********************成员数据******************/
/**
* 常量:普通常量、静态常量、引用常量
*/
final int a0 = 1;//?- 方法区(元空间)
final String b0 = "hello";//?- 堆常量池
final String c0 = new String("hello");//?- 堆区
static final int a1 = 1;//?- 方法区(元空间)
static final String b1 = "hello";//?- 堆常量池
static final String c1 = new String("hello");//?- 堆区
/**
* 变量:普通变量、静态变量、应用变量
*/
int a2 = 1;//?- ?
String b2 = "hello";//?- 堆常量池
String c3 = new String("hello");//?- 堆区
static int a4 = 1;//?- 方法区(元空间)
static String b5 = "hello";//?- 堆常量池
static String c6 = new String("hello");//?- 堆区
public static void main(String[] args){
/******************局部数据****************/
/**
* 常量:普通常量、引用常量
*/
final int a0 = 1;//?- ?
final String b0 = "hello";//?- 堆常量池
final String c0 = new String("hello");//?- 堆区
/**
* 变量:普通变量、引用变量
*/
int a2 = 1;//栈区 - 栈区
String b2 = "hello";//栈区 - 堆常量池
String c3 = new String("hello");//栈区 - 堆常量池
}
}