面試是我們每個人都要經歷的事情,大部分人且不止一次,這里給大家總結一部分面試題,讓大家在找工作時候能夠事半功倍。
1. Switch能否用string做參數?
a. 在 Java 7 之前, switch 只能支持byte,short,char,int 或者其對應的封裝類以及 Enum 類型。在JAVA 7中,String 支持被加上了。
2. equals與==的區別:
a. ==是判斷兩個變量或實例是不是指向同一個內存空間 equals是判斷兩個變量或實例所指向的內存空間的值是不是相同。
3. Object有哪些公用方法?
a. 方法equals測試的是兩個對象是否相等
b. 方法clone進行對象拷貝
c. 方法getClass返回和當前對象相關的Class對象
d. 方法notify,notifyall,wait都是用來對給定對象進行線程同步的
4. Java的四種引用,強弱軟虛,用到的場景
a. 利用軟引用和弱引用解決OOM問題:用一個HashMap來保存圖片的路徑和相應圖片對象關聯的軟引用之間的映射關系,在內存不足時,JVM會自動回收這些緩存圖片對象所占用的空間,從而有效地避免了OOM的問題
b. 通過軟可及對象重獲方法實現Java對象的高速緩存:比如我們創建了一Employee的類,如果每次需要查詢一個雇員的信息。哪怕是幾秒鐘之前剛剛查詢過的,都要重新構建一個實例,這是需要消耗很多時間的。我們可以通過軟引用和 HashMap 的結合,先是保存引用方面:以軟引用的方式對一個Employee對象的實例進行引用并保存該引用到HashMap 上,key 為此雇員的 id,value為這個對象的軟引用,另一方面是取出引用,緩存中是否有該Employee實例的軟引用,如果有,從軟引用中取得。如果沒有軟引用,或者從軟引用中得到的實例是null,重新構建一個實例,并保存對這個新建實例的軟引用
c. 強引用:如果一個對象具有強引用,它就不會被垃圾回收器回收。即使當前內存空間不足,JVM也不會回收它,而是拋出 OutOfMemoryError 錯誤,使程序異常終止。如果想中斷強引用和某個對象之間的關聯,可以顯式地將引用賦值為null,這樣一來的話,JVM在合適的時間就會回收該對象
d. 軟引用:在使用軟引用時,如果內存的空間足夠,軟引用就能繼續被使用,而不會被垃圾回收器回收,只有在內存不足時,軟引用才會被垃圾回收器回收。
e. 弱引用:具有弱引用的對象擁有的生命周期更短暫。因為當 JVM 進行垃圾回收,一旦發現弱引用對象,無論當前內存空間是否充足,都會將弱引用回收。不過由于垃圾回收器是一個優先級較低的線程,所以并不一定能迅速發現弱引用對象
f. 虛引用:顧名思義,就是形同虛設,如果一個對象僅持有虛引用,那么它相當于沒有引用,在任何時候都可能被垃圾回收器回收。
g. 使用場景:
5. Hashcode的作用,與 equal 有什么區別
a. 同樣用于鑒定2個對象是否相等的,java集合中有 list 和 set 兩類,其中 set不允許元素重復實現,那么這個不允許重復實現的方法,如果用 equal 去比較的話,如果存在1000個元素,你 new 一個新的元素出來,需要去調用1000次 equal 去逐個和他們比較是否是同一個對象,這樣會大大降低效率。hashcode實際上是返回對象的存儲地址,如果這個位置上沒有元素,就把元素直接存儲在上面,如果這個位置上已經存在元素,這個時候才去調用equal方法與新元素進行比較,相同的話就不存了,散列到其他地址上。
6. String、StringBuffer與StringBuilder的區別
a. String 類型和 StringBuffer 類型的主要性能區別其實在于 String 是不可變的對象
b. StringBuffer和StringBuilder底層是 char[]數組實現的
c. StringBuffer是線程安全的,而StringBuilder是線程不安全的
7. Override和Overload的含義去區別
a. Overload顧名思義是重新加載,它可以表現類的多態性,可以是函數里面可以有相同的函數名但是參數名、返回值、類型不能相同;或者說可以改變參數、類型、返回值但是函數名字依然不變。
b. 就是ride(重寫)的意思,在子類繼承父類的時候子類中可以定義某方法與其父類有相同的名稱和參數,當子類在調用這一函數時自動調用子類的方法,而父類相當于被覆蓋(重寫)了。
8. 抽象類和接口的區別
a. 一個類只能繼承單個類,但是可以實現多個接口
b. 接口強調特定功能的實現,而抽象類強調所屬關系
c. 抽象類中的所有方法并不一定要是抽象的,你可以選擇在抽象類中實現一些基本的方法。而接口要求所有的方法都必須是抽象的
如果你對軟件技術或者大數據開發感興趣可以到卓訓華育來實地了解,不論你是0基礎還是轉行,進入互聯網行業從事技術方面的工作是非常不錯的選擇,卓訓華育所堅持的小班面授,會讓你學習最新熱門技術,獲得一份自己滿意的高薪工作