java有四个内存块:
1.code区域:存放java类的非静态方法
2.static区域:存放静态成员变量、 静态方法、静态代码块、构造代码块
3.stack区域:存放正在执行的方法代码,以及基本类型数据和引用类型
4.heap区域:新建对象时候用于存放类的成员变量。
《深入理解Java虚拟机》这样分解java类存区域
如果必须说的更统一,可以更细的划分为以下5各区域
1.code区域中非static区域:存放java类的非静态方法
2.code区域中static区域:存放静态成员变量、 静态方法、静态代码块、构造代码块
3.stack区域中数据栈:基本类型数据和引用类型
4.heap区域:新建对象时候用于存放类的成员变量。
5.本地方法栈:使用native关键字或者jvm调用本地操作系统的方法区域。
以下内容摘自博客
一、什么时候会加载类?
使用到类中的内容时加载:有三种情况
1.创建对象:new StaticCode();
2.使用类中的静态成员:StaticCode.num=9; StaticCode.show();
3.在命令行中运行:java StaticCodeDemo
二、类所有内容加载顺序和内存中的存放位置:
利用语句进行分析。