对象
"对象"这个词,在面对对象编程中,它指的是"具有属性和行为的事物",
而在GC的世界中,对象表示的是:"通过应用程序利用的数据的集合"
对象配置在内存空间里,GC根据情况将配置好的对象进行移动或者销毁...对象使用者会 引用/替换 对象的域值,但是对象使用者基本上无法直接更改头的信息
域中的数据类型大致分为以下2种:
1:指针类型
2:非指针类型
在对象域中,可以包含一个或多个新的对象,这就代表了子对象都处于该对象的域中...,当该对象需要回收时,意味着域中的所有对象都可以回收(大多数情况下是的,但是可能出现内存逃逸,或者其他对象也引用了子对象的情况)
mutator 改变器
这个是Edsger Dijkstra 想出来的词...,意思是改变某物的意思
在gc中,它的实体是应用程序,gc在mutator中运行,
操作应用程序中的对象
更新程序内的指针
堆
堆在前文其实讲到过,就是动态存放对象的内存空间,
在mutator申请存放对象时...,会从堆中分配给mutator
gc管理 堆中已经分配的对象,当堆占用到一定大小后,将启动gc清理垃圾对象
活动对象/非活动对象
在程序运行之后, mutator会不停的更新创建对象,更新对象指针,例如