面试官:在垃圾回收过程中,哪些GC Root对象类型最为常见?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1088个文字,预计阅读时间需要5分钟。
介绍+C++程序的小伙伴都知道,每次new出来的对象,都要在代码中手动回收,否则就会造成内存泄露(即内存直接占用,直到程序崩溃)。而写Java则不用担心这个问题,只需管申请,不用管回收。
介绍
写过C++程序的小伙伴都知道,每次new出来的对象,都要在代码中手动回收,不然就会造成内存泄露(即内存一直占用,直到程序崩溃),而写Java就不用担心这个问题,只管申请,不用管释放。因为JVM会帮你释放清除那些不用的对象。那么JVM是怎么判断哪些对象不被使用了,可以被清除了
判断对象不被使用的算法
引用计数法
引用计数法(Reference Counting):给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,任何时刻计数器为0的对象就是不可能被再使用的。
但这种方法算法很难解决对象之间相互循环引用的问题。
本文共计1088个文字,预计阅读时间需要5分钟。
介绍+C++程序的小伙伴都知道,每次new出来的对象,都要在代码中手动回收,否则就会造成内存泄露(即内存直接占用,直到程序崩溃)。而写Java则不用担心这个问题,只需管申请,不用管回收。
介绍
写过C++程序的小伙伴都知道,每次new出来的对象,都要在代码中手动回收,不然就会造成内存泄露(即内存一直占用,直到程序崩溃),而写Java就不用担心这个问题,只管申请,不用管释放。因为JVM会帮你释放清除那些不用的对象。那么JVM是怎么判断哪些对象不被使用了,可以被清除了
判断对象不被使用的算法
引用计数法
引用计数法(Reference Counting):给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,任何时刻计数器为0的对象就是不可能被再使用的。
但这种方法算法很难解决对象之间相互循环引用的问题。

