黑马程序员技术交流社区
标题:
!!垃圾回收机制问题
[打印本页]
作者:
权跃杰
时间:
2012-8-8 14:27
标题:
!!垃圾回收机制问题
许多书上说,当某个对象不存在对它的引用的时候即被当做垃圾,有可能被不定时的回收。
但对于那些临时对象或者说一次性的对象比如:
System.out.print("java");
new Dog().someMethod();//字符串对象"java” 和对象dog new 出来并没有赋给某个引用变量
我不明白的是像"java" ,dog这样的对象会不会被当成垃圾,恰恰刚被new出来就被回收了,毕竟垃圾回收器的运行是一个独立的
进程。JVM是怎么处理这种情况的!
作者:
尤洋
时间:
2012-8-8 15:20
匿名对象的意义在于 方便调用方法,像一次性筷子一样只能用一次,调用完毕之后才会成为垃圾,
所以不会刚一new出来就被当成垃圾处理掉。
至于你所说的 System.out.print("java"); 中字符串对象“java”,我觉得它会缓存在 常量池中,一旦有其他引用变量 想要 创建“java”对像就会在常量池中查找是否存在该对象
存在的话就直接指向它,不存在才会重新创建。而常量池中缓存的部分会随着新的内容进入而慢慢消失。
纯属个人理解,有错误的地方的话,欢迎指证。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2