Java对象的生命周期同primitive的不同。当你用new创建Java对象之后,它会晃荡到作用域外面。如果你创建一个作用域s,它会在作用域结束之后消失。但是s所指的那个string仍然还占着内存。在这段代码里,你已经没法访问这个对象了,因为唯一指向它那个的reference现在已经除了作用域。在程序的运行过程中,它是传递和复制对象的reference的。
只要你还用得着,那些用new创建的对象就不会抛开。看来用了这种方法之后,C++里面的一大堆问题在Java里面已经不复存在了。C++编程中最难的问题就是,等你要用对象的时候,你根本没法从语言中获得这个对象还在不在的信息。而且更重要的是,用C++编程,你得亲自进行对象的清理。