Java对象不具备和基本类型一样的什么周期。例如下面这段代码:
{
String s = new String("a string");
}
引用s在作
用域终点就消失了,然而,s所指向的String对象仍继续占据内存空间。事实证明,有new创建的对象,只要你需要。就会一直保留下去。
那么这就会带来一个有趣的问题,如果Java让对象一直存在,那么靠什么才能防止这些对象充满内存空间呢?这是会在C++中发生的问题。这也是
Java神奇所在。Java有一个垃圾回收器,用来监视用new创建的所有对象,并辨别那些不会被引用的对象。随后,释放这些对象的内存空间,以便
供其他新的对象使用。