猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Java垃圾收集器-什么时候收集?
是什么决定了垃圾收集器何时真正收集?它是在一定时间之后还是在一定数量的内存用完之后发生的吗?还是还有其他因素?
MM们
浏览 501
回答 3
3回答
慕桂英3389331
当JVM没有足够的内存空间来运行时,垃圾收集器将运行并删除不必要的对象,并为JVM分配内存。不必要的对象是没有引用(地址)的对象。符合垃圾收集器条件的对象主要有4点。空引用当对象的引用变量的值分配为null时,垃圾收集器可以删除该对象 A a = new A(); a = null;重新分配当将另一个对象分配给对象的引用变量时,较旧的引用对象可以由垃圾回收器删除。 A a = new A(100); a =new A(200);当地范围如果在块内创建对象,则该对象可以在该块外进行垃圾回收。 if(condition){ A a = new A(); }隔离一个对象可以引用另一个对象,但是堆栈中的这些对象必须至少有一个引用(地址)变量,否则所有这些对象都可以进行垃圾回收。 class A{ A r; A(int i){ //something } } A a1 = new A(100); a1.r = new A(101); a1.r.r = new A(102); a1.r.r.r = a1; a1 = null //all ojects are eligible to garbage collector
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续