堆(heap)、栈(stack)和方法区(method)图示

如下图所示:堆(heap)、栈(stack)和方法区(method)图示如上图所示,堆中的数据都有内存地址值,数据也都有默认初始化值,但是当对象不再被指向时,JVM就会启动垃圾回收垃圾回收机制,同时堆和方法区都是各个线程的共享区域,栈中的数据正好和堆中数据的规则相反
堆栈方法区的存储类型也是不一样的:
堆:new创建的对象或数组
栈:基本类型值、引用数据类型
方法区:类信息、常量。静态变量、编译器编译后的代码等(前提是:都是被虚拟机已经加载过的)