四中引用介绍
强引用(StrongReference):JVM宁可抛出OOM,也不会让GC回收具有强引用的对象 生命周期:JVM停止的时候才会终止
软引用(SoftReference):只有在内存空间不足时,才会被回收的对象 生命周期:内存不足时终止
弱引用(WeakReference):在GC时,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存 生命周期:GC后终止
虚引用(PhantomReference):任何时候都可以被GC回收,当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。程序可以通过判断引用队列中是否存在该对象的引用,来了解这个对象是否将要被回收。可以用来作为GC回收Object的标志。 生命周期:GC后终止
成员变量全部存储在堆中(包括基本数据类型,引用及引用的对象实体)–因为他们属于类,类对象最终还是要被new出来的。
局部变量的基本数据类型和引用存储于栈当中。--因为他们属于方法当中的变量,生命周期会随着方法一起结束