JVM体系结构记忆
jvm主要由3个部分组成,类加载器,执行引擎,运行时数据区(栈,堆,方法区,本地方法栈)
JDK,JRE,JVM之间的关系
JDK是一个相对完整的生态,包括java平台和支持平台运行的相关工具集合。
JRE(Java Runtime Environment),是JDK的子集,就是我们通常所说的java平台。
JVM(Java Virtual Machine),包含于JRE,用来编译和运行java程序。
类加载器
1.Bootstrap ClassLoader:
用来加载%JRE_HOME%\lib目录下面的jar包和class文件
2.Extension ClassLoader:
用来加载%JRE_HOME%\lib\ext目录下面的jar包和class文件
3.App ClassLoader:
用来加载classpath目录下面的jar包和class文件
4.Custom ClassLoader:
用户自定义类加载器
执行引擎
运行时数据区
1.栈,储存java的简单数据类型和对象的引用变量
2.堆,java中分为Young Generation和Old Generation,其中Young Generation又划分为Eden和Survivor区,而Survivor区又分为From Space 和To Space。
3.方法区:又称Permanet Generation(持久代),主要存储加载的类信息,方法信息和常量池等