Java 内存模型
java programming java8java technologies object oriented programming
Java 内存模型分为线程堆栈(每个线程一个)和堆区域。
线程堆栈:它是线程特定的内存区域,包含局部变量、方法调用信息等。JVM 堆栈可以是固定大小,也可以是可变大小。如果线程中的计算超出其堆栈大小限制,JVM 将抛出 StackOverflowError 并退出。
堆
它包含应用程序生命周期内创建的所有对象。堆在虚拟机启动时创建。垃圾收集器会回收对象的堆存储空间,并且对象永远不会被显式释放。JVM 不使用任何自动存储管理系统,并且它可能根据系统需求而变化。堆可以是固定大小,也可以根据需求变化。堆的内存不需要连续。
静态变量存储在堆区域,存储在堆上的对象可以通过线程堆栈中存储的引用来引用。