2021年最新京東java面試題
一面
1 自我介紹和項目
2 Java的內存分區(qū)
3 Java對象的回收方式,回收算法。
4 CMS和G1了解么,CMS解決什么問題,說一下回收的過程。
5 CMS回收停頓了幾次,為什么要停頓兩次。
6 Java棧什么時候會發(fā)生內存溢出,Java堆呢,說一種場景,我說集合類持有對象。
7 那集合類如何解決這個問題呢,我說用軟引用和弱引用,那你講一下這兩個引用的區(qū)別吧。
8 Java里的鎖了解哪些,說了Lock和synchronized
9 它們的使用方式和實現(xiàn)原理有什么區(qū)別呢?
10 synchronized鎖升級的過程,說了偏向鎖到輕量級鎖再到重量級鎖,然后問我它們分別是怎么實現(xiàn)的,解決的是哪些問題,什么時候會發(fā)生鎖升級。
11Tomcat了解么,說一下類加載器結構吧。
12 說了Spring,問我Spring中如何讓A和B兩個bean按順序加載?
13 10億個數去重,我說用hash分片做,他說可能不均勻,然后我說了bitmap,他說那數字量更多怎么辦,我說那就兩個bitmap把。他說下一題吧。
二面:技術面
1.講一下項目
2.做的主要是Java對吧,講一下多線程把,用到哪些寫一下
3.寫了thread和runnable,然后寫了線程池,又問了線程池由哪些組件組成,有哪些線程池,分別怎么使用,以及拒絕策略有哪些。
4.什么時候多線程會發(fā)生死鎖,寫一個例子吧,然后我寫了一個兩個線程,兩個鎖,分別持有一個,請求另一個的死鎖實例。
5.集合類熟悉吧,寫一個題目,一個字符串集合,找出pdd并且刪除。
6.然后說一下Redis吧,是單線程還是多線程,Redis的分布式怎么做?
7.RPC了解么,我說了主要是協(xié)議棧+數據格式+序列化方式,然后需要有服務注冊中心管理生產者和消費者。
9.TCP三次握手的過程,如果沒有第三次握手有什么問題。
三面:技術面
自我介紹
cap了解么,分別指什么,base呢,強一致性和弱一致性有什么方法來做,2pc了解么,說一下大概過程。
負載均衡怎么做的呢,為什么這么做?
了解過集群雪崩么?
MySQL的主從復制怎么做的,具體原理是什么,有什么優(yōu)缺點。
Redis有哪些集群模式,各自的區(qū)別?
項目用到了多線程,如果線程數很多會怎么樣?
分布式了解哪些東西,消息隊列了解么,用在什么場景,說了削峰,限流和異步。說了kafka,問我怎么保證數據不丟失,以及確保消息不會被重復消費。還問了消息送達確認是怎么做的。
講一下項目的主要架構,你在里面做了什么
有什么比較復雜的業(yè)務邏輯講一下。
最大的難點是什么,收獲是什么。
HR面:
1.工作中遇到的最大挑戰(zhàn)是什么,你如何克服的?
2.你最大的優(yōu)點和最大的缺點,各自說一個?
3.未來的職業(yè)發(fā)展,短期和長期的規(guī)劃是什么?
2019年最新京東java面試題
1、 HashMap的原理, 以及HashMap如何擴充bucket的大小
2、 是否對多線程有了解
3、 項目中的Queue,單機容量達到上限如何集群擴展
4、知道哪些負載均衡算法
5、Myisam, Innodb區(qū)別
6、Mysql索引的分類(Btree, hash),各自使用什么情況
7、Btree的查找原理
8、Spring的原理(AOP IOC), AOP的原理
9、 cglib是動態(tài)代理嗎?簡要敘述cglib的原理Q10: cglib和jdk代理的區(qū)別?Jdk是不是動態(tài)代理?動態(tài)代理和靜態(tài)代理的區(qū)別
10、簡述三次握手,如果c端發(fā)起握手請求,s端無法立刻建立連接應該回應什么?
筆試
1、程序題,當輸入type=4時,寫出以下代碼的輸出:
[java] view plain copyswitch (type) {
default:
System.out.println(4);
case 1:
System.out.println(1);
case 2:
System.out.println(2);
case 3:
System.out.println(3);
}
2、程序題,以下代碼后會拋出一個異常,是第幾行拋出的:
[java] view plain copytry{
throw new Exception("1");
}catch (IOException e){
throw new Exception("2");
}catch (Exception e) {
throw new Exception("3");
}finally {
throw new Exception("4");
}
3、web容器有幾種作用域?如何防止SQL注入?
4、MySQL樂觀鎖和悲觀鎖的概念?原理機制?
5、jQuery獲取元素的方法,至少寫出3種。
6、寫出SQL的左連接、右連接、內連接、執(zhí)行查詢過程(不確定)的關鍵字。
7、Linux命令行。有一個日志文件a.log,計算包含"jd.com"的行數;將文件中的"jd.com"替換成"360buy.com";(還有一題忘記了)。
8、程序題,實現(xiàn)二分法查找。
9、我們負責的一個站點出現(xiàn)無法訪問的問題,列舉可能導致該問題的原因,并說明如何證明,越多越好。
面試
首先就是先自我介紹,然后談一些項目經歷,然后問技術相關問題,沒有當場寫代碼環(huán)節(jié)。
Java相關
1、JVM的內存結構和管理機制;
2、JVM的垃圾回收機制;
3、Java的類加載機制;
4、Java的集合類有哪些;
5、linkList和ArrayList的區(qū)別;
6、HashMap的實現(xiàn)原理;
7、你知道哪些設計模式;
8、簡單講一下工廠模式的優(yōu)勢;
9、Spring的事務管理;
數據庫相關
1、數據庫事務特征有哪些;
2、SQL語句的優(yōu)化方法有哪些;
其他
1、為什么說HTTP是無狀態(tài)、無連接的;
2、三次握手和四次揮手;
3、你常用的Linux命令行有哪些。