java对象的作用域

java对象不具备和基本类型一样的生命周期.当你用new创建一个java对象时,它可以存活于作用域之外.

例如代码如下:

{

        String name=new String("hello world");

} //end of cope

引用name在作用域终点就消失了.然而:name指向的String对象仍继续占据内存的空间.在这一小段代码中,我们似乎无法想象再访问这个对象,因为对它唯一的引用已超出了作用域的范围.

但是我们可以通过传递对象的引用,传递给需要的方法

{

          String name=new String("hello world");

          test(name);

}

public void test(String name){

}

这样这个对象又可以再其他地方使用了.

那么事实证明,由new创建的对象,只要你需要,就会一直保留下去.这样,需要C++编程问题在Java中就会完全消失.在C++中,最难的问题视乎在于:程序员并不能从语言本身中获得任何帮助,以确保在需要调用对象时,该对象仍可用.更重要的是:在C++中,一旦使用完对象后,你必须确保要销毁对象.


这样便带给我们另一个问题.如果java让这个对象继续存在,那么靠什么才能防止这些对象填满内存空间,今儿阻塞你的程序呢?

java有一个垃圾回收器,用来监视用new创建的所有对象,并辨别那些不会再被引用的对象.随后,释放这些对象的内存空间,并提供其他新的对象使用.也就是说,你根本不需要担心内存会后的问题.你只需要创建对象,一旦不再需要,他们就会自动消失.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值