Java程序員2月底開始面試,已拿奇虎360offer

金三銀四我相信職場人都知道,春天雖然來臨但是對於互聯網行業來說這個寒冬還沒有完成過去,復工以後互聯網一些企業傳出裁員、優化員工的消息,但是我還是相信今年金三銀四會有一波求職潮。

今天分享的是一位5年工作經驗的Java工程師在帝都的面試經驗總結,看看這些互聯網公司都愛問些什麼題,希望對大家的面試有指導意義。

從事Java開發也有5年經驗了,今年2月底就開始了自己的面試之旅,一直持續到這個月,主面互聯網公司,一二線大公司還在融資中的創業公司都面試過,也拿了幾個offer,其中包括奇虎360、字節跳動等。

一、Java 基礎

1.JDK 和 JRE 有什麼區別?

2.== 和 equals 的區別是什麼?

3.兩個對象的 hashCode()相同,則 equals()也一定爲 true,對嗎?

4.final 在 java 中有什麼作用?

5.java 中的 Math.round(-1.5) 等於多少?

6.String 屬於基礎的數據類型嗎?

7.java 中操作字符串都有哪些類?它們之間有什麼區別?

8.String str="i"與 String str=new String(“i”)一樣嗎?

9.如何將字符串反轉?

10.String 類的常用方法都有哪些?

11.抽象類必須要有抽象方法嗎?

12.普通類和抽象類有哪些區別?

13.抽象類能使用 final 修飾嗎?

14.接口和抽象類有什麼區別?

15.java 中 IO 流分爲幾種?

16.BIO、NIO、AIO 有什麼區別?

17.Files的常用方法都有哪些?

二、多線程

18.並行和併發有什麼區別?

19.線程和進程的區別?

20.守護線程是什麼?

21.創建線程有哪幾種方式?

22.說一下 runnable 和 callable 有什麼區別?

23.線程有哪些狀態?

24.sleep() 和 wait() 有什麼區別?

25.notify()和 notifyAll()有什麼區別?

26.線程的 run()和 start()有什麼區別?

27.創建線程池有哪幾種方式?

28.線程池都有哪些狀態?

29.線程池中 submit()和 execute()方法有什麼區別?

30.在 java 程序中怎麼保證多線程的運行安全?

31.多線程鎖的升級原理是什麼?

32.什麼是死鎖?

33.怎麼防止死鎖?

34.ThreadLocal 是什麼?有哪些使用場景?

35.說一下 synchronized 底層實現原理?

36.synchronized 和 volatile 的區別是什麼?

37.synchronized 和 Lock 有什麼區別?

38.synchronized 和 ReentrantLock 區別是什麼?

39.說一下 atomic 的原理?

三、spring/spring MVC

40.爲什麼要使用 spring?

41.解釋一下什麼是 aop?

42.解釋一下什麼是 ioc?

43.spring 有哪些主要模塊?

44.spring 常用的注入方式有哪些?

45.spring 中的 bean 是線程安全的嗎?

46.spring 支持幾種 bean 的作用域?

47.spring 自動裝配 bean 有哪些方式?

48.spring 事務實現方式有哪些?

49.說一下 spring 的事務隔離?

50.說一下 spring mvc 運行流程?

51.spring mvc 有哪些組件?

52.@RequestMapping 的作用是什麼?

53.@Autowired 的作用是什麼?

四、spring/spring Cloud

54.什麼是 spring boot?

55.爲什麼要用 spring boot?

56.spring boot 核心配置文件是什麼?

57.spring boot 配置文件有哪幾種類型?它們有什麼區別?

58.spring boot 有哪些方式可以實現熱部署?

59.jpa 和 hibernate 有什麼區別?

60.什麼是 spring cloud?

61.spring cloud 斷路器的作用是什麼?

62.spring cloud 的核心組件有哪些?

五、Mybatis

63.mybatis 中 #{}和 ${}的區別是什麼?

64.mybatis 有幾種分頁方式?

65.RowBounds 是一次性查詢全部結果嗎?爲什麼?

66.mybatis 邏輯分頁和物理分頁的區別是什麼?

67.mybatis 是否支持延遲加載?延遲加載的原理是什麼?

68.說一下 mybatis 的一級緩存和二級緩存?

69.mybatis 和 hibernate 的區別有哪些?

70.mybatis 有哪些執行器(Executor)?

71.mybatis 分頁插件的實現原理是什麼?

72.mybatis 如何編寫一個自定義插件?

六、kafk、Zookeeper

73.kafka 可以脫離 zookeeper 單獨使用嗎?爲什麼?

74.kafka 有幾種數據保留的策略?

75.kafka 同時設置了 7 天和 10G 清除數據,到第五天的時候消息達到了 10G,這個時候 kafka 將如何處理?

76.什麼情況會導致 kafka 運行變慢?

77.使用 kafka 集羣需要注意什麼?

78.zookeeper 是什麼?

79.zookeeper 都有哪些功能?

80.zookeeper 有幾種部署模式?

81.zookeeper 怎麼保證主從節點的狀態同步?

82.集羣中爲什麼要有主節點?

83.集羣中有 3 臺服務器,其中一個節點宕機,這個時候 zookeeper 還可以使用嗎?

84.說一下 zookeeper 的通知機制?

七、Redis、JVM

85.Redis是什麼?都有哪些使用場景?

86.redis 有哪些功能?

87.redis 和 memecache 有什麼區別?

88.redis 爲什麼是單線程的?

89.什麼是緩存穿透?怎麼解決?

90.redis 支持的數據類型有哪些?

91.redis 支持的 java 客戶端都有哪些?

92.jedis 和 redisson 有哪些區別?

93.怎麼保證緩存和數據庫數據的一致性?

94.redis 持久化有幾種方式?

95.redis 怎麼實現分佈式鎖?

96.redis 分佈式鎖有什麼缺陷?

97.redis 如何做內存優化?

98.redis 淘汰策略有哪些?

99.redis 常見的性能問題有哪些?該如何解決?

100.說一下 jvm 的主要組成部分?及其作用?

101.說一下 jvm 運行時數據區?

102.說一下堆棧的區別?

103.隊列和棧是什麼?有什麼區別?

104.什麼是雙親委派模型?

105.說一下類加載的執行過程?

106.怎麼判斷對象是否可以被回收?

107.java 中都有哪些引用類型?

108.說一下 jvm 有哪些垃圾回收算法?

109.說一下 jvm 有哪些垃圾回收器?

110.詳細介紹一下 CMS 垃圾回收器?

111.新生代垃圾回收器和老生代垃圾回收器都有哪些?有什麼區別?

112.簡述分代垃圾回收器是怎麼工作的?

113.說一下 jvm 調優的工具?

114.常用的 jvm 調優的參數都有哪些?

怎麼樣看完這些面試題,如果是你你能答上多少呢?如果你沒有準備的話,我相信有很多人都答不出來這些面試題,所以我給大家準備好了資料,詳細請看下面。

面試題答案彙總

部分面試視頻

一、面試合集精選

二、p6~p7面試合集

「上圖展示的只是一部分」

掃碼加微信助手,免費領取面試題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章