java对象在jvm堆区的状态有哪些

Python010

java对象在jvm堆区的状态有哪些,第1张

根据我翻阅的资料,Java对象在JVM堆区的状态主要有:新生状态、可达状态、可复活状态、不可达状态。新生状态是指对象刚刚创建时的状态,该状态下的对象可以由GC进行回收。可达状态是指对象被引用并且可以被GC回收;可复活状态是指对象被引用但是不可被GC回收;不可达状态是指对象不被任何引用,可以被GC回收。

Java把内存划分为以下4个部分:

1、栈区(stacksegment)—由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放JVM内存资源。

2、堆区(heapsegment)—一般由程序员分配释放,存放由new创建的对象和数组,jvm不定时查看这个对象,如果没有引用指向这个对象就回收。

3、静态区(datasegment)—存放全局变量,静态变量和字符串常量,不释放。

4、代码区(codesegment)—存放程序中方法的二进制代码,而且是多个对象共享一个代码空间区域。