干了四年的Java面試官,給大家分享我面試時最愛問的Java面試題

2015 年要糊,因為工作崗位的變動纲熏,開始負責給集團招聘一些技術人員,出于對公司的負責锄俄,也為了更好的勝任技術經理的職位局劲,在面試的這件事上,我做了大量的“功課”奶赠,首先我研究了幾乎所有大廠的面試題鱼填,還和負責招聘工作的幾個朋友,詳細的探討了 Java 面試所要涉及的知識點毅戈,于是就有了今天大家看到的這 200 多道面試題苹丸。

為什么要公開這些面試題?

原因一:身邊從事 Java 開發(fā)的人員越來越多苇经,我的表弟表妹們赘理,朋友的表弟表妹們,朋友的朋友的表弟表妹們塑陵,每次問我要相同的面試復習材料感憾,已經讓我疲于應付,索性整理出來,直接發(fā)鏈接給他們阻桅。

原因二:節(jié)省招聘雙方彼此的時間凉倚,有些來公司面試人,無論是有幾年工作經驗的還是剛畢業(yè)的嫂沉,就連這些最基礎的面試題都搞不定稽寒,這確實讓人很遺憾。常言道“一屋不掃何以掃天下”趟章,也是同樣的道理杏糙,如果連基礎的概念都搞不明白,又怎么讓面試官相信你能寫出高質量的程序呢蚓土?與其浪費彼此的時間宏侍,還不如花點時間把自己的基礎知識掌握牢固。

原因三:提高 Java 從業(yè)人員整體的能力模型蜀漆,讓優(yōu)秀的人能“冒”出來谅河。有了這些面試題不意味著,死記硬背之后就能進入企業(yè)工作确丢,尤其是 BAT 等工作崗位競爭更為激烈绷耍,這些面試題只能成為面試體系中的一道“開胃菜”,從而提高了整個 Java 面試的壁壘鲜侥,讓愿與學的人褂始,變的更加優(yōu)秀,從而和懶惰的人拉開差距描函,讓企業(yè)也能更輕易的甄別崎苗。

這些面試題包含哪些內容?

這份面試題包含了 19 個模塊:Java 基礎赘阀、容器益缠、多線程、反射基公、對象拷貝、Java Web宋欺、異常轰豆、網(wǎng)絡、設計模式齿诞、Spring/Spring MVC酸休、Spring Boot/Spring Cloud、Hibernate祷杈、Mybatis斑司、RabbitMQ、Kafka但汞、Zookeeper宿刮、MySql互站、Redis、JVM 等僵缺。

如下圖所示:

干了四年的Java面試官胡桃,給大家分享我面試時最愛問的Java面試題

本面試題解決的痛點

  • 稀缺性,提供真實的磕潮,覆蓋面全的面試集合翠胰,包含 200+ 面試題。
  • 權威性自脯,解決了目前市場上答案太舊甚至是錯誤的問題之景。
  • 真實性,這份面試題是企業(yè)常用的膏潮,不會偏離實際锻狗。
  • 易理解性,通俗易懂條理清晰戏罢,部分面試題包含題目解析和代碼示例屋谭,讓小白也能看的懂。
  • 節(jié)約時間龟糕,屏蔽無效重復信息桐磁,為真正需要面試題的人節(jié)省檢索時間。

適宜閱讀人群

  • 待面試的 初/中/高級 Java 程序員
  • 查漏補缺的人
  • 想要不斷完善和擴充自己 Java 技術棧的人
  • Java 面試官

限于篇幅的原因讲岁,答案不能完全展示

加Q群:328993819 備注簡書我擂,免費獲取

面試題展示

一、Java 基礎

  • 1.JDK 和 JRE 有什么區(qū)別缓艳?
  • 2.== 和 equals 的區(qū)別是什么校摩?
  • 3.兩個對象的 hashCode()相同,則 equals()也一定為 true阶淘,對嗎衙吩?
  • 4.final 在 java 中有什么作用?
  • 5.java 中的 Math.round(-1.5) 等于多少溪窒?
  • 6.String 屬于基礎的數(shù)據(jù)類型嗎坤塞?
  • 7.java 中操作字符串都有哪些類?它們之間有什么區(qū)別澈蚌?
  • 8.String str="i"與 String str=new String("i")一樣嗎摹芙?
  • 9.如何將字符串反轉?
  • 10.String 類的常用方法都有那些宛瞄?
  • 11.抽象類必須要有抽象方法嗎浮禾?
  • 12.普通類和抽象類有哪些區(qū)別?
  • 13.抽象類能使用 final 修飾嗎?
  • 14.接口和抽象類有什么區(qū)別盈电?
  • 15.java 中 IO 流分為幾種蝴簇?
  • 16.BIO、NIO挣轨、AIO 有什么區(qū)別军熏?
  • 17.Files的常用方法都有哪些?

二卷扮、容器

  • 18.java 容器都有哪些荡澎?
  • 19.Collection 和 Collections 有什么區(qū)別?
  • 20.List晤锹、Set摩幔、Map 之間的區(qū)別是什么?
  • 21.HashMap 和 Hashtable 有什么區(qū)別鞭铆?
  • 22.如何決定使用 HashMap 還是 TreeMap或衡?
  • 23.說一下 HashMap 的實現(xiàn)原理?
  • 24.說一下 HashSet 的實現(xiàn)原理车遂?
  • 25.ArrayList 和 LinkedList 的區(qū)別是什么封断?
  • 26.如何實現(xiàn)數(shù)組和 List 之間的轉換?
  • 27.ArrayList 和 Vector 的區(qū)別是什么舶担?
  • 28.Array 和 ArrayList 有何區(qū)別坡疼?
  • 29.在 Queue 中 poll()和 remove()有什么區(qū)別?
  • 30.哪些集合類是線程安全的衣陶?
  • 31.迭代器 Iterator 是什么柄瑰?
  • 32.Iterator 怎么使用?有什么特點剪况?
  • 33.Iterator 和 ListIterator 有什么區(qū)別教沾?
  • 34.怎么確保一個集合不能被修改?

三译断、多線程

  • 35.并行和并發(fā)有什么區(qū)別授翻?
  • 36.線程和進程的區(qū)別?
  • 37.守護線程是什么孙咪?
  • 38.創(chuàng)建線程有哪幾種方式藏姐?
  • 39.說一下 runnable 和 callable 有什么區(qū)別?
  • 40.線程有哪些狀態(tài)该贾?
  • 41.sleep() 和 wait() 有什么區(qū)別?
  • 42.notify()和 notifyAll()有什么區(qū)別捌臊?
  • 43.線程的 run()和 start()有什么區(qū)別杨蛋?
  • 44.創(chuàng)建線程池有哪幾種方式?
  • 45.線程池都有哪些狀態(tài)?
  • 46.線程池中 submit()和 execute()方法有什么區(qū)別逞力?
  • 47.在 java 程序中怎么保證多線程的運行安全曙寡?
  • 48.多線程鎖的升級原理是什么?
  • 49.什么是死鎖寇荧?
  • 50.怎么防止死鎖举庶?
  • 51.ThreadLocal 是什么?有哪些使用場景揩抡?
  • 52.說一下 synchronized 底層實現(xiàn)原理户侥?
  • 53.synchronized 和 volatile 的區(qū)別是什么?
  • 54.synchronized 和 Lock 有什么區(qū)別峦嗤?
  • 55.synchronized 和 ReentrantLock 區(qū)別是什么蕊唐?
  • 56.說一下 atomic 的原理?

四烁设、反射

  • 57.什么是反射替梨?
  • 58.什么是 java 序列化?什么情況下需要序列化装黑?
  • 59.動態(tài)代理是什么副瀑?有哪些應用?
  • 60.怎么實現(xiàn)動態(tài)代理恋谭?

五糠睡、對象拷貝

  • 61.為什么要使用克隆箕别?
  • 62.如何實現(xiàn)對象克峦摹?
  • 63.深拷貝和淺拷貝區(qū)別是什么串稀?

六除抛、Java Web

  • 64.jsp 和 servlet 有什么區(qū)別?
  • 65.jsp 有哪些內置對象母截?作用分別是什么到忽?
  • 66.說一下 jsp 的 4 種作用域?
  • 67.session 和 cookie 有什么區(qū)別清寇?
  • 68.說一下 session 的工作原理喘漏?
  • 69.如果客戶端禁止 cookie 能實現(xiàn) session 還能用嗎?
  • 70.spring mvc 和 struts 的區(qū)別是什么华烟?
  • 71.如何避免 sql 注入翩迈?
  • 72.什么是 XSS 攻擊,如何避免盔夜?
  • 73.什么是 CSRF 攻擊负饲,如何避免堤魁?

七、異常

  • 74.throw 和 throws 的區(qū)別返十?
  • 75.final妥泉、finally、finalize 有什么區(qū)別洞坑?
  • 76.try-catch-finally 中哪個部分可以省略盲链?
  • 77.try-catch-finally 中,如果 catch 中 return 了迟杂,finally 還會執(zhí)行嗎刽沾?
  • 78.常見的異常類有哪些?

八逢慌、網(wǎng)絡

  • 79.http 響應碼 301 和 302 代表的是什么悠轩?有什么區(qū)別?
  • 80.forward 和 redirect 的區(qū)別攻泼?
  • 81.簡述 tcp 和 udp的區(qū)別火架?
  • 82.tcp 為什么要三次握手,兩次不行嗎忙菠?為什么何鸡?
  • 83.說一下 tcp 粘包是怎么產生的?
  • 84.OSI 的七層模型都有哪些牛欢?
  • 85.get 和 post 請求有哪些區(qū)別骡男?
  • 86.如何實現(xiàn)跨域?
  • 87.說一下 JSONP 實現(xiàn)原理傍睹?

九隔盛、設計模式

  • 88.說一下你熟悉的設計模式?
  • 89.簡單工廠和抽象工廠有什么區(qū)別拾稳?

十吮炕、Spring/Spring MVC

  • 90.為什么要使用 spring?
  • 91.解釋一下什么是 aop访得?
  • 92.解釋一下什么是 ioc龙亲?
  • 93.spring 有哪些主要模塊?
  • 94.spring 常用的注入方式有哪些悍抑?
  • 95.spring 中的 bean 是線程安全的嗎鳄炉?
  • 96.spring 支持幾種 bean 的作用域?
  • 97.spring 自動裝配 bean 有哪些方式搜骡?
  • 98.spring 事務實現(xiàn)方式有哪些拂盯?
  • 99.說一下 spring 的事務隔離?
  • 100.說一下 spring mvc 運行流程记靡?
  • 101.spring mvc 有哪些組件磕仅?
  • 102.@RequestMapping 的作用是什么珊豹?
  • 103.@Autowired 的作用是什么?

十一榕订、Spring Boot/Spring Cloud

  • 104.什么是 spring boot?
  • 105.為什么要用 spring boot蜕便?
  • 106.spring boot 核心配置文件是什么劫恒?
  • 107.spring boot 配置文件有哪幾種類型?它們有什么區(qū)別轿腺?
  • 108.spring boot 有哪些方式可以實現(xiàn)熱部署两嘴?
  • 109.jpa 和 hibernate 有什么區(qū)別?
  • 110.什么是 spring cloud族壳?
  • 111.spring cloud 斷路器的作用是什么憔辫?
  • 112.spring cloud 的核心組件有哪些?

十二仿荆、Hibernate

  • 113.為什么要使用 hibernate贰您?
  • 114.什么是 ORM 框架?
  • 115.hibernate 中如何在控制臺查看打印的 sql 語句拢操?
  • 116.hibernate 有幾種查詢方式锦亦?
  • 117.hibernate 實體類可以被定義為 final 嗎?
  • 118.在 hibernate 中使用 Integer 和 int 做映射有什么區(qū)別令境?
  • 119.hibernate 是如何工作的杠园?
  • 120.get()和 load()的區(qū)別?
  • 121.說一下 hibernate 的緩存機制舔庶?
  • 122.hibernate 對象有哪些狀態(tài)抛蚁?
  • 123.在 hibernate 中 getCurrentSession 和 openSession 的區(qū)別是什么?
  • 124.hibernate 實體類必須要有無參構造函數(shù)嗎惕橙?為什么瞧甩?

十三、Mybatis

  • 125.mybatis 中 #{}和 ${}的區(qū)別是什么吕漂?
  • 126.mybatis 有幾種分頁方式亲配?
  • 127.RowBounds 是一次性查詢全部結果嗎?為什么惶凝?
  • 128.mybatis 邏輯分頁和物理分頁的區(qū)別是什么吼虎?
  • 129.mybatis 是否支持延遲加載?延遲加載的原理是什么苍鲜?
  • 130.說一下 mybatis 的一級緩存和二級緩存思灰?
  • 131.mybatis 和 hibernate 的區(qū)別有哪些?
  • 132.mybatis 有哪些執(zhí)行器(Executor)混滔?
  • 133.mybatis 分頁插件的實現(xiàn)原理是什么洒疚?
  • 134.mybatis 如何編寫一個自定義插件歹颓?

十四、RabbitMQ

  • 135.rabbitmq 的使用場景有哪些油湖?
  • 136.rabbitmq 有哪些重要的角色巍扛?
  • 137.rabbitmq 有哪些重要的組件?
  • 138.rabbitmq 中 vhost 的作用是什么乏德?
  • 139.rabbitmq 的消息是怎么發(fā)送的撤奸?
  • 140.rabbitmq 怎么保證消息的穩(wěn)定性?
  • 141.rabbitmq 怎么避免消息丟失喊括?
  • 142.要保證消息持久化成功的條件有哪些胧瓜?
  • 143.rabbitmq 持久化有什么缺點?
  • 144.rabbitmq 有幾種廣播類型郑什?
  • 145.rabbitmq 怎么實現(xiàn)延遲消息隊列府喳?
  • 146.rabbitmq 集群有什么用?
  • 147.rabbitmq 節(jié)點的類型有哪些蘑拯?
  • 148.rabbitmq 集群搭建需要注意哪些問題钝满?
  • 149.rabbitmq 每個節(jié)點是其他節(jié)點的完整拷貝嗎?為什么强胰?
  • 150.rabbitmq 集群中唯一一個磁盤節(jié)點崩潰了會發(fā)生什么情況舱沧?
  • 151.rabbitmq 對集群節(jié)點停止順序有要求嗎?

十五偶洋、Kafka

  • 152.kafka 可以脫離 zookeeper 單獨使用嗎熟吏?為什么?
  • 153.kafka 有幾種數(shù)據(jù)保留的策略玄窝?
  • 154.kafka 同時設置了 7 天和 10G 清除數(shù)據(jù)牵寺,到第五天的時候消息達到了 10G,這個時候 kafka 將如何處理恩脂?
  • 155.什么情況會導致 kafka 運行變慢帽氓?
  • 156.使用 kafka 集群需要注意什么?

十六俩块、Zookeeper

  • 157.zookeeper 是什么黎休?
  • 158.zookeeper 都有哪些功能?
  • 159.zookeeper 有幾種部署模式玉凯?
  • 160.zookeeper 怎么保證主從節(jié)點的狀態(tài)同步势腮?
  • 161.集群中為什么要有主節(jié)點?
  • 162.集群中有 3 臺服務器漫仆,其中一個節(jié)點宕機捎拯,這個時候 zookeeper 還可以使用嗎?
  • 163.說一下 zookeeper 的通知機制盲厌?

十七署照、MySql

  • 164.數(shù)據(jù)庫的三范式是什么祸泪?
  • 165.一張自增表里面總共有 7 條數(shù)據(jù),刪除了最后 2 條數(shù)據(jù)建芙,重啟 mysql 數(shù)據(jù)庫没隘,又插入了一條數(shù)據(jù),此時 id 是幾岁钓?
  • 166.如何獲取當前數(shù)據(jù)庫版本升略?
  • 167.說一下 ACID 是什么?
  • 168.char 和 varchar 的區(qū)別是什么屡限?
  • 169.float 和 double 的區(qū)別是什么?
  • 170.mysql 的內連接炕倘、左連接钧大、右連接有什么區(qū)別?
  • 171.mysql 索引是怎么實現(xiàn)的罩旋?
  • 172.怎么驗證 mysql 的索引是否滿足需求啊央?
  • 173.說一下數(shù)據(jù)庫的事務隔離?
  • 174.說一下 mysql 常用的引擎涨醋?
  • 175.說一下 mysql 的行鎖和表鎖瓜饥?
  • 176.說一下樂觀鎖和悲觀鎖?
  • 177.mysql 問題排查都有哪些手段浴骂?
  • 178.如何做 mysql 的性能優(yōu)化乓土?

十八、Redis

  • 179.redis 是什么溯警?都有哪些使用場景趣苏?
  • 180.redis 有哪些功能?
  • 181.redis 和 memecache 有什么區(qū)別梯轻?
  • 182.redis 為什么是單線程的食磕?
  • 183.什么是緩存穿透?怎么解決喳挑?
  • 184.redis 支持的數(shù)據(jù)類型有哪些彬伦?
  • 185.redis 支持的 java 客戶端都有哪些?
  • 186.jedis 和 redisson 有哪些區(qū)別伊诵?
  • 187.怎么保證緩存和數(shù)據(jù)庫數(shù)據(jù)的一致性单绑?
  • 188.redis 持久化有幾種方式?
  • 189.redis 怎么實現(xiàn)分布式鎖日戈?
  • 190.redis 分布式鎖有什么缺陷询张?
  • 191.redis 如何做內存優(yōu)化?
  • 192.redis 淘汰策略有哪些浙炼?
  • 193.redis 常見的性能問題有哪些份氧?該如何解決唯袄?

十九、JVM

  • 194.說一下 jvm 的主要組成部分蜗帜?及其作用恋拷?
  • 195.說一下 jvm 運行時數(shù)據(jù)區(qū)?
  • 196.說一下堆棧的區(qū)別厅缺?
  • 197.隊列和棧是什么蔬顾?有什么區(qū)別?
  • 198.什么是雙親委派模型湘捎?
  • 199.說一下類加載的執(zhí)行過程诀豁?
  • 200.怎么判斷對象是否可以被回收?
  • 201.java 中都有哪些引用類型窥妇?
  • 202.說一下 jvm 有哪些垃圾回收算法舷胜?
  • 203.說一下 jvm 有哪些垃圾回收器?
  • 204.詳細介紹一下 CMS 垃圾回收器活翩?
  • 205.新生代垃圾回收器和老生代垃圾回收器都有哪些烹骨?有什么區(qū)別?
  • 206.簡述分代垃圾回收器是怎么工作的材泄?
  • 207.說一下 jvm 調優(yōu)的工具沮焕?
  • 208.常用的 jvm 調優(yōu)的參數(shù)都有哪些?

限于篇幅的原因拉宗,答案不能完全展示

加Q群:328993819 備注簡書峦树,免費獲取

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市簿废,隨后出現(xiàn)的幾起案子空入,更是在濱河造成了極大的恐慌,老刑警劉巖族檬,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歪赢,死亡現(xiàn)場離奇詭異,居然都是意外死亡单料,警方通過查閱死者的電腦和手機埋凯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扫尖,“玉大人白对,你說我怎么就攤上這事』徊溃” “怎么了甩恼?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我条摸,道長悦污,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任钉蒲,我火速辦了婚禮切端,結果婚禮上,老公的妹妹穿的比我還像新娘顷啼。我一直安慰自己踏枣,他們只是感情好,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布钙蒙。 她就那樣靜靜地躺著茵瀑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪躬厌。 梳的紋絲不亂的頭發(fā)上瘾婿,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天,我揣著相機與錄音烤咧,去河邊找鬼。 笑死抢呆,一個胖子當著我的面吹牛煮嫌,可吹牛的內容都是我干的。 我是一名探鬼主播抱虐,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼昌阿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恳邀?” 一聲冷哼從身側響起懦冰,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎超升,沒想到半個月后扔役,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卤橄,經...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年内地,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赋除。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡阱缓,死狀恐怖,靈堂內的尸體忽然破棺而出举农,到底是詐尸還是另有隱情荆针,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站航背,受9級特大地震影響喉悴,放射性物質發(fā)生泄漏。R本人自食惡果不足惜沃粗,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一粥惧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧最盅,春花似錦突雪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至问词,卻和暖如春督函,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背激挪。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工辰狡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垄分。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓宛篇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親薄湿。 傳聞我的和親對象是個殘疾皇子叫倍,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359