034_JVM——垃圾回收、对象销毁

再java语言中,所有的程序都围绕着对象的创建、调用、与销毁。但是大部分的时候我们都是再调用对象,跟没有创建对象与销毁对象。

创建对象的工作常常交给了框架或者容器。

销毁对象的工作常常有gc机制。System.gc()应该只是通知JVM进行垃圾清理。真正销毁对象的还是对象的finalize(),但是student.finalize()就证明了student对象有引用,

调用finalize()是不会销毁对象的。finalize()一直都是对象再调用,从来不是引用调用。但是我们一直都是使用引用操作对象的,所以我们不可能调用finalize()销毁对象,

只有虚拟机调用对象.finalize()才能销毁对象。

====================================================================

其实我们也会再方法中创建对象,但是这中创建的对象并不长久,因为我们创建的对象引用会随着方法的结束而简短。

也就是说我们再方法中创建的对象并不长久,因为他的引用会随着方法的结束而销毁。那这样的话这个对象的引用很可能为空

很可能被gc回收。

栈堆的设计真是太巧妙了。其实应该也是随着环境需求设计出来。刚开始可能对象与方法可能都放在栈中,这样的话每次方法结束,

都要创建出一个对象,倒不如把这个对象领出来单独放一开区域,这样就形成了堆。

 

posted on 2020-03-05 12:59  十年磨三劍  阅读(232)  评论(0编辑  收藏  举报

导航