1. 程式人生 > >2018最新java面試題

2018最新java面試題

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中多型的實現原理

所謂多型,指的就是父類引用指向子類物件,呼叫方法時會呼叫子類的實現而不是父類的實現。多型的實現的關鍵在於“動態繫結”。