一:引用的类型
javac编译器编译源文件后,生成字节码文件,在类加载器加载字节码文件到内存中时,在内存中开辟
空间,栈、堆以及方法区,来存放对象以及引用。引用可以分为四种:
强引用:平常我们在编写程序时使用比较多的是强引用,在栈内存中有引用指向的对象,即使内存不足也不会被回收,而是
抛出OutOfMemoryException,这就是强引用,如果我们希望回收,可以手动将引用置为null。
StringBuilder sb = new StringBuilder();
软引用:在内存空间充足的情况下不会被回收,但是在内存溢出前会回收掉该引用对象,以释放内存空间,多用于高速缓存。
弱引用:无论内存空间是否充足,只要垃圾回收器扫描到就会被回收。这种情况用的比较少,主要是引入WeakHashMap类
虚引用(幽灵引用):永远都获取不到的对象,可以用来检测引用是否被回收。
具体解释可以参考:
http://blog.csdn.net/qq_34280276/article/details/52863626
来源:https://www.cnblogs.com/warrior4236/p/6770635.html