Java的四种引用类型分析
2016-03-30 11:24
423 查看
引用的基本概念
1.1、强引用
当我们使用new 这个关键字创建对象时被创建的对象就是强引用,如Object object = new Object() 这个Object()就是一个强引用了,如果一个对象具有强引用。垃圾回收器就不会去回收有强引用的对象。如当jvm内存不足时,具备强引用的对象,虚拟机宁可会报内存空间不足的异常来终止程序,也不会靠垃圾回收器去回收该对象来解决内存。
1.2、软引用
如果一个对象具备软引用,如果内存空间足够,那么垃圾回收器就不会回收它,如果内存空间不足了,就会回收该对象。当然没有被回收之前,该对象依然可以被程序调用。
1.3、弱引用
如果一个对象只具有弱引用,只要垃圾回收器在自己的内存空间中线程检测到了,就会立即被回收,对应内存也会被释放掉。相比软引用弱引用的生命周期要比软引用短很多。不过,如果垃圾回收器是一个优先级很低的线程,也不一定会很快就会释放掉软引用的内存。
1.4、虚引用
如果一个对象只具有虚引用,那么它就和没有任何引用一样,随时会被jvm当作垃圾进行回收。相关文章推荐
- Myeclipse 错误:JVM terminated. Exit code=1
- java 类处理工具
- 0005--jcf(jdk1.7)-HashMap源码
- Process 'command 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value
- Spring-servlet流程 个人总结
- CSRF spring mvc 跨站请求伪造防御
- Servlet
- Dubbo与Zookeeper、SpringMVC整合和使用
- Eclipse快速补全快捷键失效,修改方法
- 第二章 第二个spring-boot程序
- java中的枚举类型
- java中的枚举类型
- 【JavaScipt】可选的分号
- struts文件上传与下载简单DEMO
- 一、 Spring启动时加载和初始化bean概述
- 5.spring注解@Required、@Autowired、@qualifier、@resource
- java用ireport模板生成PDF文件
- SpringMVC中hibernate中一对多关系,懒加载转JSON问题
- java通过虚拟机设置参数的方式动态获取当前项目的绝对路径
- java for和foreach的区别