finalize是不一定被调用的。
解决方案 »
- 高手!求高手,帮解释一下题啊
- 小弟请求
- 高手来,"String s[]=new String[0];"有意义吗?再看......
- 高分求教,如何编写正则表达式 去掉html标签
- java控制台程序程序问题,各位大吓帮帮小弟,很急......我24小时在线等各位指导
- 高手进,关于匿名内部类中用到的变量,为什莫必须是final的???
- ======为什么jpanel会盖住下拉菜单=======
- 请问如何在页面中设置,使当不能显示APPLET时候,自动让用户去下载JAVA PLUG-IN??
- 关于corba的送分题
- java 中如何创建hashmap 的代理对象,或者,怎么观察hashmap的改变的前后状态
- 又toStrinG问题
- 求算法:1000!如何算?
.net不是也学着这样做了吗?
b.close
c.close
d.close呵呵,如果我的类重新整理了,那么我就需要该mina函数。所以,java从语法上可以说是完全面向对象,但是从语义上来说,不能算作完全面向对象。
所以,在使用普通对象时,用户不用处理,由java来自动回收。
还有一些比较特殊的对象,比如连接数据库的对象,Connection,或者是文件操作对象 File,等等一些访问了其它资源的对象,这些对象不仅仅在内存中占有资源,同进也占有了机器中其它的资源,而此时如果只使用java自动回去的机制是不够的,因为他不知道什么时候回收,而这些对象当使用完,为了节约资源要马上释放的。此时呢,就要用户自己动手了,比如:Conncetion中的close方法,就是手动来释放占用的其它资源的。
这也是java再处理不同类型对象给用户提供的一些机制。
Java里没有析构,C#有析构,但是这个析构不能完全等同于C++的析构函数的。
因为我们都不能控制这个析构的调用时间的。Java的垃圾回收算法也不必C#,所以Java遇到大内存使用的时候,就是比较头疼。
非得-Xxxx;C#提供了using关键字来控制对象的资源生存期。
相对好点。
此外C#提供了struct,来解决过多堆对象的问题。