jdk1.6版本的内存模型:
jdk1.8之后版本的内存模型:
MethodArea 方法区 特点和java堆是一样的,是各个线程的共享的一个区域,方法区中用于存放,加载的类的信息,常量、静态的变量,即时编译器编译后的代码等数据。代表堆的逻辑部分 Non-Heap
新生代 一般程序员新创建的变量 -----存储在新生代中 —GC
老年代 剩余的还在使用的变量会存储在老年代中
永久代 PernGen ------在jdk的1.8版本之后被删除了
StringTable ----指代字符串的常量池 还是在堆空间中
运行时的常量池 —搬到了元空间中
下面举个例子来具体说明一下内存模型的构造:
上面是一段代码,我们用内存模型来具体展示其中的构造:
大概意思就如图所示👆