您的位置: 域名 - 建站教程
« 上一篇下一篇 »

网站建设中Java对象的作用域

分类: 建站教程 发布: zhushican 浏览: 日期: 2014-08-15

Java对象的生命周期同primitive的不同。当你用new创建Java对象之后,它会晃荡到作用域外面。如果你创建一个作用域s,它会在作用域结束之后消失。但是s所指的那个string仍然还占着内存。在这段代码里,你已经没法访问这个对象了,因为唯一指向它那个的reference现在已经除了作用域。在程序的运行过程中,它是传递和复制对象的reference的。

只要你还用得着,那些用new创建的对象就不会抛开。看来用了这种方法之后,C++里面的一大堆问题在Java里面已经不复存在了。C++编程中最难的问题就是,等你要用对象的时候,你根本没法从语言中获得这个对象还在不在的信息。而且更重要的是,用C++编程,你得亲自进行对象的清理。

这就带来一个有趣的问题。如果Java就这样只管造对象,不管清理对象,那么又是谁在那里阻止对象填满内存呢?这确实是C++所面临的问题。但这里就优点魔法了,Java有一个垃圾回收器,它会看着所有用new创建的对象,并且还会知道其中的哪些已经没有reference指着了。然后它会释放那些没有reference指着的对象所占据的内存,这样内存就能被新的对象用了。这就是说你永远也不必为重新申请内存而操心。你只要创建对象就行了,用完之后它们自会离开。这样就彻底解决了因程序员忘了释放内存而产生的内存泄漏的编程问题了。

相关文章:

  • 评论:(0)
发表评论

Powered By qqq114.cn

Copyright 【10000个好做seo优化的域名】. Some Rights Reserved.