存在,并且存储在方法区; 3、方法区存放class二进制文件,包含类信息、类数据、常量(String、final修饰的变量)。 五、常量池(方法区): 1、在编译期就能被确认的值(String a = "a" / int b =1 ...)就存在常量池中,且在常量池中永远只有一份;在运行期才能确认的值(new())存放在堆中。
1.String a = "str" --- 首先虚拟机会从方法区中去寻找是否有,有的话就直接把地址赋值给a ,没有的话,就在方法区中开辟一个内存在存储.(方法区的回收不会那么频繁,只有当内存不够的时候才会销毁不用的常量,非静态的) 2.String b = new String("str) 他是直接在堆内存中,直接开辟一个内存来存储的,...
常量数据区中的数据是只读的。全局/静态数据区全局/静态数据区主要用于存放全局变量和静态变量。在程序启动时,全局/静态数据已经分配了存储空间。全局/静态数据区中的数据在程序结束后由操作系统释放。未初始化的静态变量会被程序自动初始化为 0,静态局部变量在程序执行到该对象的声明处时被首次初始化。栈区栈区用于...