Java中的四种引用类型?
Java中的四种引用类型分别是:强、软、弱、虚
(1)强引用 :User user = new User()就是强引用,在Java中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它始终处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到JVM也不会回收。因此强引用是造成Java内存泄露的主要原因之一。如果在方法内部new对象的话,只要方法弹栈,对象就会销毁。
(2)软引用:会用到SoftReference类,对于只有软引用的对象来说,当系统内存足够时它是不会被回收,当系统内存空间不足时它会被回收。软引用通常用在对内存敏感的程序中,作为缓存使用。
(3)弱引用:它比软引用生存期更短,对于只有弱引用的对象来说,只要垃圾回收机制一运行,不管JVM的内存空间是否足够,总会回收该对象占用的内存。可以解决内存泄露问题,ThreadLocal就是基于弱引用解决内存泄露的问题。
(4)虚引用:它不能单独使用,必须和引用队列联合使用。虚引用的主要作用是跟踪对象被垃圾回收的状态。