黑马程序员技术交流社区

标题: !!垃圾回收机制问题 [打印本页]

作者: 权跃杰    时间: 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