天天看點

Java面試

1、java事件機制包括哪三個部分?分别介紹。

2、為什麼要使用線程池?

3、線程池有什麼作用?

4、說說幾種常見的線程池及使用場景。

5、線程池都有哪幾種工作隊列?

6、怎麼了解無界隊列和有界隊列?

7、線程池中的幾種重要的參數及流程說明。

8、什麼是反射機制?

9、說說反射機制的作用。

10、反射機制會不會有性能問題?

11、你怎麼了解http協定?

12、說說http協定的工作流程。

13、http有哪些請求送出方式?

14、http中的200,302,403,404,500,503都代表什麼狀态?

15、http get和post有什麼差別?

16、你怎麼了解cookie和session,有哪些不同點?

17、什麼是web緩存?有什麼優點?

18、什麼是https,說說https的工作原理?

19、什麼是http代理伺服器,有什麼用?

20、什麼是虛拟主機及實作原理?

21、什麼是Java虛拟機,為什麼要使用?

22、說說Java虛拟機的生命周期及體系結構。

23、說一說Java記憶體區域。

24、什麼是分布式系統?

25、分布式系統你會考慮哪些方面?

26、講一講TCP協定的三次握手和四次揮手流程。

27、為什麼TCP建立連接配接協定是三次握手,而關閉連接配接卻是四次握手呢?為什麼不能用兩次握手進行連接配接?

28、為什麼TCP TIME_WAIT狀态還需要等2MSL後才能傳回到CLOSED狀态?

29、什麼是DoS、DDoS、DRDoS攻擊?如何防禦?

30、描述一下Java異常層次結構。

31、什麼是檢查異常,不受檢查異常,運作時異常?并分别舉例說明。

32、finally塊一定會執行嗎?

33、正常情況下,當在try塊或catch塊中遇到return語句時,finally語句塊在方法傳回之前還是之後被執行?

34、try、catch、finally語句塊的執行順序。

35、Java虛拟機中,資料類型可以分為哪幾類?

36、怎麼了解棧、堆?堆中存什麼?棧中存什麼?

37、為什麼要把堆和棧區分出來呢?棧中不是也可以存儲資料嗎?

38、在Java中,什麼是是棧的起始點,同是也是程式的起始點?

39、為什麼不把基本類型放堆中呢?

40、Java中的參數傳遞時傳值呢?還是傳引用?

41、Java中有沒有指針的概念?

42、Java中,棧的大小通過什麼參數來設定?

43、一個空Object對象的占多大空間?

44、對象引用類型分為哪幾類?

45、講一講垃圾回收算法。

46、如何解決記憶體碎片的問題?

47、如何解決同時存在的對象建立和對象回收問題?

48、講一講記憶體分代及生命周期。

49、什麼情況下觸發垃圾回收?

50、如何選擇合适的垃圾收集算法?

51、JVM中最大堆大小有沒有限制?

52、堆大小通過什麼參數設定?

53、JVM有哪三種垃圾回收器?

54、吞吐量優先選擇什麼垃圾回收器?響應時間優先呢?

55、如何進行JVM調優?有哪些方法?

56、如何了解記憶體洩漏問題?有哪些情況會導緻記憶體洩露?如何解決?

57、從分布式系統部署角度考慮,分哪幾層?

58、如何解決業務層的資料通路問題?

59、為了解決資料庫伺服器的負擔,如何做資料庫的分布?

60、什麼是著名的拜占庭将軍問題?

61、為什麼說TCP/IP協定是不可靠的?

62、講講CAP理念。

63、怎麼了解強一緻性、單調一緻性和最終一緻性?

64、分布式系統設計你會考慮哪些政策?

65、最常見的資料分布方式是什麼?

66、談一談一緻性雜湊演算法。

67、paxos是什麼?

68、什麼是Lease機制?

69、如何了解選主算法?

70、OSI有哪七層模型?TCP/IP是哪四層模型。