2018最新java面試題
阿新 • • 發佈:2018-12-11
1.什麼是B/S架構?C/S架構?
- B/S(Browser/Server),瀏覽器/伺服器程式;
- C/S(Client/Server),客戶端/服務端,桌面應用程式。
2.網路協議有哪些?
- HTTP:超文字傳輸協議;
- SMPT:簡單郵件協議;
- TELNET:遠端終端協議;
- POP3:郵件讀取協議 ;
- FTP:檔案傳輸協議;
3. Java的四種引用及應用場景?
小編也是一名從事了6年java開發的全棧工程師,花了近一個月整理了一份較適合18年學習的java乾貨,送給每一位學習java小夥伴,加java學習qq群領取:818464711
- 強引用: 通常我們使用new操作符建立一個物件時所返回的引用即為強引用;
- 軟引用: 若一個物件只能通過軟引用到達,那麼這個物件在記憶體不足時會被回收,可用於圖片快取中,記憶體不足時系統會自動回收不再使用的Bitmap;
- 弱引用: 若一個物件只能通過弱引用到達,那麼它就會被回收(即使記憶體充足),同樣可用於圖片快取中,這時候只要Bitmap不再使用就會被回收;
- 虛引用: 虛引用是Java中最“弱”的引用,通過它甚至無法獲取被引用的物件,它存在的唯一作用就是當它指向的物件回收時,本身會被加入到引用佇列中,這樣我們可以知道它指向的物件何時被銷燬。
4.Java是否需要開發人員回收記憶體垃圾嗎?
多情況下是不需要。Java提供了一個系統級的執行緒來跟蹤記憶體分配,不再使用的記憶體區將會自動回收。
5. ArrayList, Vector,LinkedList,的區別是什麼?
- ArrayList: 內部採用陣列儲存元素,支援高效隨機訪問,支援動態調整大小;
- Vector: 可以看作執行緒安全版的ArrayList;
- LinkedList: 內部採用連結串列來儲存元素,支援快速插入/刪除元素,但不支援高效地隨機訪問。
6.Java中的包裝類都是那些?
- byte:Byte;
- short:Short;
- int:Integer;
- double:Double;
- char:Character;
- boolean:Boolean;
- long:Long;
- float:Float。
7. String, StringBuilder, StringBuffer的區別是什麼?
- String: 不可變的字元序列,若要向其中新增新字元需要建立一個新的String物件;
- StringBuilder: 可變字元序列,支援向其中新增新字元;
- StringBuffer: 可以看作執行緒安全版的StringBuilder。
8.一個java類中包含那些內容?
屬性、方法、內部類、構造方法、程式碼塊。
9. 靜態內部類與非靜態內部類的區別
靜態內部類不會持有外圍類的引用,而非靜態內部類會隱式持有外圍類的一個引用。
10. Java中多型的實現原理
所謂多型,指的就是父類引用指向子類物件,呼叫方法時會呼叫子類的實現而不是父類的實現。多型的實現的關鍵在於“動態繫結”。