Java- 对象清楚与垃圾回收
2015-08-22 20:48
232 查看
对象的自动清除
也叫垃圾回收(garbage collection)对象回收是由Java虚拟机的垃圾回收线程来完成的。
系统如何判断一个对象是否为垃圾?
任何对象都有一个引用计数器,当其值为0时,说明该对象可以回收。
System.gc()方法
它是System类的static方法它可以要求系统进行垃圾回收,但仅仅只是“建议”,即不能强制系统进行垃圾回收。
finalize()方法
Java中没有“析构方法(destructor)”,但Object的finalize()有类似的功能系统在回收时会自动调用对象的finalize()方法
protected void finalize() throws Throwable{}
该方法其实很少用到,因为垃圾回收是自动自行的。
子类的finalize()方法
可以在子类的finalize()方法释放系统资源
一般来说,子类的finalize()方法中应该调用父类的finalize()方法,以保证父类的清理工作能够正常进行。
try-with-resources
由于finalize()方法的调用时机并不确定,所以一般不用finalize()方法关闭打开的文件、清除一些非内存资源等工作需要进行处理,可以使用try-with-resources语句(JDK1.7以上),要求可以实现
java.lang.AutoCloseable的对象
例如:
try(Scanner scanner = new Scanner(...)){ ... }
会自动调用其
close()方法,相当于
finally{ Scanner.close(); }
相关文章推荐
- Java Map接口Properties
- Java生成CSV文件
- Java字符串操作、基本运算方法等优化策略
- Java 注解的简单学习与应用 Annotation
- Java Map接口TreeMap
- eclipse最有用快捷键整理
- Spring-管理bean
- Java学习笔记,基础总结(一)
- Java集合Set、List、Map的遍历方法
- 通过java的反射从list中取出对象从而取出属性值
- Java Map接口LinkedHashMap
- Eclipse搭建Android开发环境-Android SDK和ADT离线安装
- 在eclipse中JAVA从打包成jar程序到双击运行的整个过程(没有主清单属性问题的解决)
- java8 Stream
- SpringMVC环境搭建
- Java- 构造方法的执行顺序
- java反射机制功能之---检查类的结构
- 大龄屌丝自学笔记--Java零基础到菜鸟--008
- Java--线程
- struts/Servlet,action转到jsp后,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)