美文网首页
Java内存结构

Java内存结构

作者: helloWorld_1118 | 来源:发表于2019-01-31 16:07 被阅读0次

JVM总图:

类加载器,执行引擎,运行时数据区

image.png

类加载子系统,执行引擎,运行时数据区,三部分关系图

image.png

线程独享部分结构关系

image.png

类的加载过程(生命周期)

image.png

类加载器

image.png

类加载机制

image.png

存放Java对象,所有的对象(包括数组,但Class对象除外)数据实际存放地方。堆是程序级别,每一个Java程序共享一个堆(所以存在多线程访问堆内存同步问题)

image.png

jdk1.8:取消了永久代,由元数据区替代,常量池在元数据区
jdk1.7:有永久代,但已经逐步“去永久代”,常量池在堆
jdk1.6:有永久代,常量池在方法区

方法区

存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等
https://www.cnblogs.com/duanxz/p/3728737.html

存的是引用(如果是基本类型,则存的是值),引用(直接或间接)指向堆中的对象。栈是线程级别,每一个线程有各自的栈。栈又分为两种,一是Java方法栈,一是本地方法栈(nativie method stack)。另外,每个线程都有各自的程序计数器,也是栈格式的。

直接内存

堆和栈区别

https://www.cnblogs.com/ityouknow/p/5603287.html
https://www.cnblogs.com/ityouknow/p/5610232.html

相关文章

网友评论

      本文标题:Java内存结构

      本文链接:https://www.haomeiwen.com/subject/wkwbrftx.html