Java基础面试题(2)
Java基本类型有哪些?
一共8种:
byte,int,short,long,float,double,char,boolean
引用数据类型有哪些?
3种:类,接口,数组
为什么Java里有基本数据类型和引用数据类型?
引用类型有哪些?
-
什么是引用
-
强引用
就是平常我们用的最多的情况:
Object o = new Object();
如果不特意使用 java.lang.ref 下的类,那么程序中的所有引用都是强引用。
有强引用存在的对象永远都不会被 gc 收集,所以在内存不够用时,JVM 宁愿抛出 OutOfMemoryError 这样的错误,也不愿意将强引用对象进行回收。
-
软引用(SoftReference)
软引用不会保证对象一定不会被回收,只能最大可能保证。如果内存有剩余,那么软引用对象不会被回收
如果内存不足,那么 gc 会回收软引用对象。所以这种特性可以用来实现缓存技术。软引用要用 java.lang.ref.SoftReference 来实现。
-
弱引用(WeakReference)
和软引用不同的是,弱引用一定会在下一次gc回收,不管内存是否不足。
-
虚引用(PhantomReference)