各大公司java面试整理对应问题博客整理
各大公司java面試整理對應問題博客整理!
阿里
二面 7月26日(22分鐘):
https://blog.csdn.net/huangyuhuangyu/article/details/78220005
ActiveMQ是一個消息中間件,對于消費者而言有兩種方式從消息中間件獲取消息:
Push方式:由消息中間件主動地將消息推送給消費者;
Pull方式:由消費者主動向消息中間件拉取消息采用Push方式,可以盡可能快地將消息發送給消費者 而采用Pull方式,會增加消息的延遲,即消息到達消費者的時間有點長但是,Push方式會有一個壞處:如果消費者的處理消息的能力很弱(一條消息需要很長的時間處理),而消息中間件不斷地向消費者Push消息,消費者的緩沖區可能會溢出。
在對表需要進行查詢或者排序***作時,可以對表中某個或者某幾個字段添加索引,對一個字段添加索引就是單個索引,對多個字段添加索引時就是組合索引。從前往后依次使用生效,如果中間某個索引沒有使用,那么斷點前面的索引部分起作用,斷點后面的索引沒有起作用;
京東
一面:
1、HashMap、concurrentHashMap底層原理把知道的都說一遍
2、線程池把知道的都說出來
3、線程同步(synchronized、volatile、ReenreantLock、ThreadLocal)
4、設計模式把知道的說一遍
二面:
1、Java基本數據類型
整型 byte(1字節) short (2個字節) int(4個字節) long (8個字節)
浮點型 float(4個字節) double(8個字節)
邏輯性 boolean(八分之一個字節)
字符型 char(2個字節,一個字符能存儲下一個中文漢字)
byte->short , char->int->long
float->double int ->float long->double 小可轉大,大轉小會失去精度。
2、arrayList、linkedList底層原理以及其區別,各自的使用場景
4、HashMap有哪些缺點、是不是線程安全的、擴容
5、紅黑樹、b樹、b+樹底層原理
6、索引采用b+樹和HashMap的區別,使用場景,數據庫為什么用b+樹做索引,而不用HashMap
7、數據庫隔離級別以及各種隔離級別有可能會產生什么問題
騰訊
1.問項目,真的是細,細的有些我自己都忘了(千萬要知道項目的細節)
3.說一下線程池這一塊?(講了線程池的幾個參數以及幾個線程池的細分)
4.Java提供了幾個類加載器?分別是?怎么對類進行加載的?
5.hashCode知道是干什么的嗎?如果要你重寫,需要注意哪些點?
SUN官方的文檔中規定"如果重定義equals方法,就必須重定義hashCode方法,以便用戶可以將對象插入到散列(哈希)表中"
在集合框架中的HashSet,HashTable和HashMap都使用哈希表的形式存儲數據,而hashCode計算出來的哈希碼便是它們的身份證。哈希碼的存在便可以:
快速定位對象,提高哈希表集合的性能。
只有當哈希表中對象的索引即hashCode和對象的屬性即equals同時相等時,才能夠判斷兩個對象相等。
從上面可以看出,哈希碼主要是為哈希表服務的,其實如果不需要使用哈希表,也可以不重寫hashCode。但是SUN公司應該是出于對程序擴展性的考慮(萬一以后需要將對象放入哈希表集合中),才會規定重寫equals的同時需要重寫hashCode,以避免后續開發不必要的麻煩。
hashCode方法可以這樣理解:它返回的就是根據對象的內存地址換算出的一個值。這樣一來,當集合要添加新的元素時,先調用這個元素的hashCode方法,就一下子能定位到它應該放置的物理位置上。如果這個位置上沒有元素,它就可以直接存儲在這個位置上,不用再進行任何比較了;如果這個位置上已經有元素了,就調用它的equals方法與新元素進行比較,相同的話就不存了,不相同就散列其它的地址。這樣一來實際調用equals方法的次數就大大降低了,幾乎只需要一兩次。
重寫equals時需要注意滿足java語言規范對于equals的要求:
Java語言規范要求equals需要具有如下的特性:
自反性:對于任何非空引用 x,x.equals() 應該返回 true。
對稱性:對于任何引用 x 和 y,當且僅當 y.equals(x) 返回 true,x.equals(y) 也應該返回 true。
傳遞性:對于任何引用 x、y 和 z,如果 x.equals(y)返回 true,y.equals(z) 也應返回同樣的結果。
一致性:如果 x 和 y 引用的對象沒有發生變化,反復調用 x.equals(y) 應該返回同樣的結果。
對于任意非空引用 x,x.equals(null) 應該返回 false。
1.equals與hashCode的定義必須一致,兩個對象equals為true,就必須有相同的hashCode。反之,如果兩個對象的hashcode相同,equals不一定相同。
2.當重寫equals方法時,一定要同時把hashcode方法一并重寫,因為要保證在實現hash表的擴展性
如果不被重寫(原生)的hashCode和equals是什么樣的?
為什么需要重寫equals和hashCode方法?
在我們的業務系統中判斷對象時有時候需要的不是一種嚴格意義上的相等,而是一種業務上的對象相等。在這種情況下,原生的equals方法就不能滿足我們的需求了
所以這個時候我們需要重寫equals方法,來滿足我們的業務系統上的需求。那么為什么在重寫equals方法的時候需要重寫hashCode方法呢?
我們先來看一下Object.hashCode的通用約定(摘自《Effective Java》第45頁)
如果只重寫了equals方法而沒有重寫hashCode方法的話,則會違反約定的第二條:相等的對象必須具有相等的散列碼(hashCode)
同時對于HashSet和HashMap這些基于散列值(hash)實現的類。HashMap的底層處理機制是以數組的方法保存放入的數據的(Node<K,V>[] table),其中的關鍵是數組下標的處理。數組的下標是根據傳入的元素hashCode方法的返回值再和特定的值異或決定的。如果該數組位置上已經有放入的值了,且傳入的鍵值相等則不處理,若不相等則覆蓋原來的值,如果數組位置沒有條目,則插入,并加入到相應的鏈表中。檢查鍵是否存在也是根據hashCode值來確定的。所以如果不重寫hashCode的話,可能導致HashSet、HashMap不能正常的運作、
5.ClassNotFoundException知道嗎?遇到場景是什么?怎么解決的?
常見的場景就是:
1 調用class的forName方法時,找不到指定的類
2 ClassLoader 中的 findSystemClass() 方法時,找不到指定的類
3 ClassLoader 中的 loadClass() 方法時,找不到指定的類
二、造成異常的常見原因:
1. 所需要的支持類庫放錯了地方,并沒有放在類路徑(CLASSPATH環境變量)里面。
2. 使用了重復的類庫,且版本不一致。導致低版本的被優先使用。
3.類名錯了,一般是使用Class.forName的時候,手工指定了類名的情況。
4. 沒有導入純JAVA驅動包。
6.NoSuchMethodException遇到過嗎?
反射時候會出現,查了下Class的文檔,該類下原來有兩個方法:getMethod,getDeclaredMethod。看了下說明大概的意思就是getMethod只能調用public聲明的方法,而getDeclaredMethod基本可以調用任何類型聲明的方法
騰訊音樂(一面,50分鐘)后臺開發方向
1.講講priority_queue的底層數據結構實現過程和原理。
2.講講hash的原理,解決哈希沖突的方法。
3.Hash和搜索二叉樹的優缺點。
4.一個8g的數據文件,怎樣找出積分排名前100的用戶(數據內容是一列ID,一列積分,積分是流動的)。
5.如何監聽tcp丟包問題。(細節知識點)。
6.TCP和UDP的細節知識點(建立和斷開的狀態轉移)。
7.單鏈表找倒數第n個節點,說所有你能想到的方法。
9.線程和進程的區別以及優缺點。
騰訊音樂 (二面 20分鐘)
3.select上限?
1024個套接字(編譯內核可以達到65536個)
5.三次握手過程?第三條丟了會怎樣?有什么現象?
10.http報頭格式?
7.如何解析http報頭?
8.子進程和父進程怎么通信?
9.怎樣判斷是子進程?
11.http有哪些方法?返回狀態碼?
12.Linux下如何查看端口號?
13.用過哪些linux命令?
騰訊 (二面)
15.怎么把一顆二叉搜索樹原地變成一個雙向鏈表?
17.怎么判斷一個無符號的整數是不是2的n次方?
19.timewait出現在什么時候?怎么查看那些進程處于timewait狀態?
netstat -a | grep TIME_WAIT | wc -l
20.沒有timewait會怎樣?https://blog.csdn.net/hzrandd/article/details/74463313
順豐一面面經
2、hashmap底層實現?有哪些是線程安全的?當沖突的時候怎么解決?當hash值相同時,怎么進行比較?
3、concurrentHashMap怎么實現?
4、數據庫索引有哪些?底層怎么實現的?數據庫怎么優化?
5、http解釋一下?tcp/udp解釋一下?
6、OOM說一下?怎么排查?哪些會導致OOM?
https://blog.csdn.net/u010256841/article/details/41121755
https://blog.csdn.net/damaolly/article/details/30243125
JVM初始分配的堆內存由-Xms指定,默認是物理內存的1/64;JVM最大分配的堆內存由-Xmx指定,默認是物理內存的1/4。默認空余堆內存小于40%時,JVM就會增大堆直到-Xmx的最大限制;
空余堆內存大于70%時,JVM會減少堆直到-Xms的最小限制。因此服務器一般設置-Xms、-Xmx 相等以避免在每次GC 后調整堆的大小。
7、volatile講講
8、多線程的鎖?怎么優化的?偏向鎖、輕量級鎖、重量級鎖?
9、哪些設計模式?裝飾器、代理講講?
10、redis集群會嗎?
阿里:
mysql存儲引擎
事務隔離級別
不可重復度和幻讀,怎么避免,底層怎么實現(行鎖表鎖)
https://blog.csdn.net/gaoshan_820822/article/details/4582561
事務四個特性
i++和++i滿足原子性么
類加載機制 三種加載器(雙親委派) 三種加載器怎么協同工作? 加載過程? 類初始化五種情況
Java容器層次結構
Object類的方法 12
map怎么實現hashcode和equals,為什么重寫equals必須重寫hashcode(扯回HashMap的put***作。源碼)
同步機制synchronized 重入鎖
synchronized底層實現原理:(monitor)字節碼層面 同步方法和同步代碼塊不一樣!https://www.cnblogs.com/paddix/p/5367116.html
對象鎖是用來控制實例方法之間的同步,類鎖是用來控制靜態方法(或靜態變量互斥體)之間的同步。
J.U.C體系結構(java.util.concurrent)
https://blog.csdn.net/hp910315/article/details/50963095
什么是Spring IOC和AOP的實現原理
Spring事務管理方式
https://blog.csdn.net/bao19901210/article/details/41724355
https://blog.csdn.net/chinacr07/article/details/78817449
SpringMVC是什么 原理
什么是servlet 生命周期 一個項目model可以有多個servlet么
Servlet是一種獨立于***作系統平臺和網絡傳輸協議的服務器端的Java應用程序。
https://www.cnblogs.com/whgk/p/6399262.html
設計模式 項目中用過哪些 工廠模式 單例在項目中怎么應用 懶漢餓漢(各寫一個)
2.面向對象--舉例理解
3.數據結構--設計實現KV結構,查找算法,樹
4.網線斷了tcp連接情況
5.java 中static理解,final理解
6.主從同步。
7.treeSet,紅黑樹
8.JVM,GC垃圾回收機制,垃圾收集器。
9.threadLocal
京東:
4.一面整個過程中,面試官都在問我的項目
5.主要問了我三個項目,其中用的技術,分布式文件,分布式儲存,工作流等
6.spring的源碼
7.springMVC的整個流程
8.mybatis與Hibernate的區別
11.js的怎么實現面向對象
二面:
3.java與c++的區別,知道多少答多少
5.hashMap源碼與currenthashmap源碼,1.7與1.8 的區別
7.hashmap在并發情況下,會出現什么問題
8.給了一個場景題,說怎么實現每隔一秒在控制臺輸出一句話
https://zhidao.baidu.com/question/2011460338755023108.html
9.java多線程怎么實現的
https://www.cnblogs.com/felixzh/p/6036074.html
11.java虛擬機的內存模式
12.怎么打破雙親委派模式
https://www.cnblogs.com/wxd0108/p/6681618.html
https://www.jb51.net/article/102920.htm
13.java虛擬機怎么識別是符合標準的class文件,魔數
每個Class文件的頭4個字節被稱為魔數,它的唯一作用是用于確定這個文件是否為一個能被java虛擬機所接收的Class類文件,即用于判定文件是否是符合規范的java Class文件。雖然說后綴名“.class”可以表明文件是一個Class文件,但是文件后綴名是可以隨意被改動的,基于安全的考慮,很多文件都通過魔數值來唯一確定文件類型,java的Class文件魔數是:0xCAFEBABE.
https://blog.csdn.net/u011958281/article/details/78176980
14.mysql的索引用過吧?
15.介紹一下索引?怎么使用索引的?
16.B樹與B+樹的底層
17.數據庫怎么實現分庫分表
18.消息中間件用過嗎?主要的作用是什么? (項目)待解決
19.我看你簡歷上面寫了前端,我們來問一下前端的知識
20,js的數據類型有哪些? 5個
21.dom對象與js對象、jQuery的區別
22,jQuery對象和js對象之間的互相轉換
https://blog.csdn.net/zc474235918/article/details/50300411
23.js中事件觸發的流程,怎么阻止冒泡
window.event.cancelBubble=true e.stopPropagation()
24.怎么預防用戶的多次點擊事件
1.防止重復點擊可以添加標記,第一次點擊后變為false,每次點擊判斷這個標記是true才執行
2.如果是按鈕防止重復點擊,可以再按鈕點擊后,給按鈕添加disabled屬性,按鈕就再也點擊不了
25.你用過哪些服務器 tomcat nginx
26.tomcat和nginx的配置文件,你怎么配置的。
https://blog.csdn.net/Neil_Wesley/article/details/51307676
阿里
· 分布式事務 2pc
· Java內存模型
· 堆和棧
· concurrenthashmap在1.8和1.7里面有什么區別
· 線程有自己的空間嗎,如果有,有多大
· 線程池
· Fork/Join跟線程池有什么區別
https://segmentfault.com/a/1190000008140126
· 講一下迪杰斯特拉算法的流程 (小甲魚)
· 講一下弗洛伊德算法的流程
https://blog.csdn.net/longshengguoji/article/details/10756003
阿里:
1.java的線程安全queue需要注意的點
https://blog.csdn.net/madun/article/details/20313269#commentBox
https://www.ibm.com/developerworks/cn/java/j-jtp04186/
http://yanxuxin.iteye.com/blog/586943
2.加鎖需要注意什么 鎖優化的思路和方法
http://www.importnew.com/21353.html
3 java無鎖原理
http://www.hao124.net/article/52
5. 數據庫索引了解原理么?
答:從b+樹說b+和b比的優勢,又提到了innodb和myisam之間聚簇索引和非聚簇索引之間的區別,優缺點,實際上還可以扯扯hash,聯合索引,前綴匹配啥的
問:java相關的框架了解哪些
答:spring,springboot,springcloud,mybatis
問:spring了解些啥?
答:ioc,aop的原理,順便說了下ioc的好處
問:大量日志去重怎么弄
答:
問:大量整數排序
答:問了是int,覺得直接用bitmap就完了
阿里:
二面面經:
3.死鎖的原因,如何避免
https://blog.csdn.net/ls5718/article/details/51896159
4.現代***作系統有完全解決死鎖問題嗎 bukeyi
http://www.cnblogs.com/shuaihanhungry/p/5671402.html
5.如何找出服務器負載過高的原因
https://blog.csdn.net/yuanlin65/article/details/52663224
(1)找出文件中出現次數TOPK的字符串 優先級隊列最小堆
https://blog.csdn.net/L_kanglin/article/details/70500286
(3)判斷一個字符串集合是否能連接成環,首尾字符相同則認為可以相連,如abc,cde,ea
https://blog.csdn.net/Yan456jie/article/details/51206096
http://thinkerou.com/2016-06/interview-is-circle-string/
三面面經:
3.常見的GC算法
4.OOM出現在什么時候
https://www.cnblogs.com/baizhanshi/p/6704731.html
2.針對日訪問量上億做出一些優化
https://blog.csdn.net/yang_best/article/details/50893785
https://blog.csdn.net/u012373815/article/details/71435926
https://blog.csdn.net/sun_wangdong/article/details/51137008
3.內存管理方式 (待解決)
https://blog.csdn.net/hguisu/article/details/5713164#commentBox
4.100億元素排序?https://blog.csdn.net/nigelyq/article/details/52766879
7.常見的設計模式及應用場景
百度智能云 數據庫部門
一面:
1 數據庫的事務,四個性質說一下,分別有什么用,怎么實現的。。
https://www.zhihu.com/question/30272728
2 講到了redo和undo日志,問我分別有什么用。
https://blog.csdn.net/kobejayandy/article/details/50885693
3 數據庫的隔離性如何保證,使用悲觀鎖和樂觀鎖有何區別。MVCC的設計目的是什么,怎么使用版本號判斷數據的可見性。
https://blog.csdn.net/whoamiyang/article/details/51901888
4 問了一道算法,1到N的所有數字,按照字典序打印,使用dfs遍歷樹的每個分支。
https://blog.csdn.net/wumingkeqi/article/details/70940978
https://blog.csdn.net/u011437229/article/details/53188837
5 多線程并發的同步實現,有兩個方法,每個方法里有a部分代碼和b部分代碼,我要讓兩個線程分別執行兩個方法,并且讓他們運行完a部分代碼再一起向下執行,如何實現。
https://www.cnblogs.com/dolphin0520/p/3920397.html
8 問我棧中需要壓入哪些數據。方法參數,返回值,以及返回地址。
二面:
2 服務器如何負載均衡,有哪些算法,哪個比較好,一致性哈希原理,怎么避免DDOS攻擊請求打到少數機器。
https://blog.csdn.net/Gy__My/article/details/78790280
https://www.cnblogs.com/xrq730/p/5154340.html
https://segmentfault.com/a/1190000004492447
https://www.cnblogs.com/zlhff/p/5459070.html
3.TCP連接中的三次握手和四次揮手,四次揮手的最后一個ack的作用是什么,為什么要time wait,為什么是2msl。
https://blog.csdn.net/weixin_41966991/article/details/81264095
4 數據庫的備份和恢復怎么實現的,主從復制怎么做的,什么時候會出現數據不一致,如何解決。
https://www.cnblogs.com/visec479/p/4103029.html
https://blog.csdn.net/hardworking0323/article/details/81046408
https://blog.csdn.net/nuli888/article/details/52120600
8 Linux查看cpu占用率高的進程
用top命令找到最占CPU的進程
https://www.cnblogs.com/pangguoping/p/5715848.html
https://blog.csdn.net/hrn1216/article/details/51426741
9 查看占用某端口的進程
1、lsof -i:端口號
2、netstat –tunlp | grep 端口號
查看某進程監聽的端口
1、先查看進程pid
ps -ef | grep 進程名
2、通過pid查看占用端口
netstat -nap | grep 進程pid
10 如何查詢日志文件中的所有ip,正則表達式
三面(8.3號更新):(linux待解決)
Linux,說一下Linux排查問題常用的命令,ps,top,netstat,free,du等等
P516 du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有一些區別的。
3 Linux的內存管理算法,頁面置換算法, lru和fifo,lru有什么缺點。
LRU是最近最少使用頁面置換算法(Least Recently Used),也就是首先淘汰最長時間未被使用的頁面! LFU是最近最不常用頁面置換算法(Least Frequently Used),也就是淘汰一定時期內被訪問次數最少的頁!
https://blog.csdn.net/u011080472/article/details/51206332
https://blog.csdn.net/hguisu/article/details/5713164#commentBox
4 Linux的文件系統了解么,講了一下inode節點,文件和目錄的原理。
https://www.cnblogs.com/xie***/7214502.html
shell了解么
5 進程通信方式有哪些,問我分別怎么使用,管道有哪些類型,各有什么優缺點。
https://blog.csdn.net/wh_sjc/article/details/70283843
8 JVM內存模型
9 gc算法,分代回收。
10 設計模式了解么,說了7種,問我分別怎么用,實際應用過嗎
11 MySQL的引擎講一下,有什么區別,使用場景
https://www.2cto.com/database/201703/616547.html
12 查詢最新的10條數據,
select *from table order by update_time desc limit 10
13 MySQL的union all和union有什么區別,
https://www.cnblogs.com/wangyayun/p/6133540.html
14 MySQL有哪幾種join方式,底層原理是什么
https://www.cnblogs.com/JohnABC/p/7150921.html
https://www.cnblogs.com/ggjucheng/archive/2012/11/15/2772148.html
15 Redis數據結構和基本原理,
Redis的持久化怎么做,aof和rdb,有什么區別,有什么優缺點。
https://www.cnblogs.com/Anker/p/6099705.html
Redis使用哨兵部署會有什么問題
https://juejin.im/post/5b7d226a6fb9a01a1e01ff64
https://www.cnblogs.com/mafly/p/redis_cluster.html
https://my.oschina.net/zhangxufeng/blog/905611
https://blog.csdn.net/c295477887/article/details/52487621
23 用隊列計算一個樹的高度,我說用層次遍歷記錄節點高度。
24 一個黑名單集合,數據量很大,快速查詢一個值是否在集合里,怎么設計,布隆過濾器。
https://www.jianshu.com/p/b0c0edf7686e
27 分布式數據庫了解么
https://blog.csdn.net/psiitoy/article/details/73201444#commentBox
https://blog.csdn.net/yyd19921214/article/details/68953629
?
百度智能云 數據庫部門
一面:
1 數據庫的事務,四個性質說一下,分別有什么用,怎么實現的。。
https://www.zhihu.com/question/30272728
2 講到了redo和undo日志,問我分別有什么用。
https://blog.csdn.net/kobejayandy/article/details/50885693
3 數據庫的隔離性如何保證,使用悲觀鎖和樂觀鎖有何區別。MVCC的設計目的是什么,怎么使用版本號判斷數據的可見性。
https://blog.csdn.net/whoamiyang/article/details/51901888
?
4 問了一道算法,1到N的所有數字,按照字典序打印,使用dfs遍歷樹的每個分支。
https://blog.csdn.net/wumingkeqi/article/details/70940978
https://blog.csdn.net/u011437229/article/details/53188837
5 多線程并發的同步實現,有兩個方法,每個方法里有a部分代碼和b部分代碼,我要讓兩個線程分別執行兩個方法,并且讓他們運行完a部分代碼再一起向下執行,如何實現。
https://www.cnblogs.com/dolphin0520/p/3920397.html
?
8 問我棧中需要壓入哪些數據。方法參數,返回值,以及返回地址。
?
二面:
?
2 服務器如何負載均衡,有哪些算法,哪個比較好,一致性哈希原理,怎么避免DDOS攻擊請求打到少數機器。
https://blog.csdn.net/Gy__My/article/details/78790280
https://www.cnblogs.com/xrq730/p/5154340.html
https://segmentfault.com/a/1190000004492447
https://www.cnblogs.com/zlhff/p/5459070.html
?
3.TCP連接中的三次握手和四次揮手,四次揮手的最后一個ack的作用是什么,為什么要time wait,為什么是2msl。
https://blog.csdn.net/weixin_41966991/article/details/81264095
?
4 數據庫的備份和恢復怎么實現的,主從復制怎么做的,什么時候會出現數據不一致,如何解決。
https://www.cnblogs.com/visec479/p/4103029.html
https://blog.csdn.net/hardworking0323/article/details/81046408
https://blog.csdn.net/nuli888/article/details/52120600
?
8 Linux查看cpu占用率高的進程
用top命令找到最占CPU的進程
https://www.cnblogs.com/pangguoping/p/5715848.html
https://blog.csdn.net/hrn1216/article/details/51426741
9 查看占用某端口的進程
1、lsof -i:端口號
2、netstat –tunlp | grep 端口號
查看某進程監聽的端口
1、先查看進程pid
ps -ef | grep 進程名
2、通過pid查看占用端口
netstat -nap | grep 進程pid
10 如何查詢日志文件中的所有ip,正則表達式
三面(8.3號更新):(linux待解決)
Linux,說一下Linux排查問題常用的命令,ps,top,netstat,free,du等等
P516 du命令也是查看使用空間的,但是與df命令不同的是Linux du命令是對文件和目錄磁盤使用的空間的查看,還是和df命令有一些區別的。
3 Linux的內存管理算法,頁面置換算法, lru和fifo,lru有什么缺點。
LRU是最近最少使用頁面置換算法(Least Recently Used),也就是首先淘汰最長時間未被使用的頁面! LFU是最近最不常用頁面置換算法(Least Frequently Used),也就是淘汰一定時期內被訪問次數最少的頁!
https://blog.csdn.net/u011080472/article/details/51206332
https://blog.csdn.net/hguisu/article/details/5713164#commentBox
4 Linux的文件系統了解么,講了一下inode節點,文件和目錄的原理。
https://www.cnblogs.com/xie***/7214502.html
shell了解么
5 進程通信方式有哪些,問我分別怎么使用,管道有哪些類型,各有什么優缺點。
https://blog.csdn.net/wh_sjc/article/details/70283843
8 JVM內存模型
9 gc算法,分代回收。
10 設計模式了解么,說了7種,問我分別怎么用,實際應用過嗎
11 MySQL的引擎講一下,有什么區別,使用場景
https://www.2cto.com/database/201703/616547.html
12 查詢最新的10條數據,
select *from table order by update_time desc limit 10
13 MySQL的union all和union有什么區別,
https://www.cnblogs.com/wangyayun/p/6133540.html
?
14 MySQL有哪幾種join方式,底層原理是什么
https://www.cnblogs.com/JohnABC/p/7150921.html
https://www.cnblogs.com/ggjucheng/archive/2012/11/15/2772148.html
15 Redis數據結構和基本原理,
Redis的持久化怎么做,aof和rdb,有什么區別,有什么優缺點。
https://www.cnblogs.com/Anker/p/6099705.html
Redis使用哨兵部署會有什么問題
https://juejin.im/post/5b7d226a6fb9a01a1e01ff64
https://www.cnblogs.com/mafly/p/redis_cluster.html
https://my.oschina.net/zhangxufeng/blog/905611
https://blog.csdn.net/c295477887/article/details/52487621
?
23 用隊列計算一個樹的高度,我說用層次遍歷記錄節點高度。
?
24 一個黑名單集合,數據量很大,快速查詢一個值是否在集合里,怎么設計,布隆過濾器。
https://www.jianshu.com/p/b0c0edf7686e
27 分布式數據庫了解么
https://blog.csdn.net/psiitoy/article/details/73201444#commentBox
https://blog.csdn.net/yyd19921214/article/details/68953629
?
百度智能云 賬號和消息部門
一面:
2 講一下AOP吧
3 動態代理和靜態代理有什么區別
4 TCP和IP報文是否會分片,分別在什么情況下會分片。 TCP分包之后是否還會進行ip分片
https://blog.csdn.net/ns_code/article/details/30109789
6 寫一個斐波那契數列 遞歸式,要求改進
7 講一下Linux的內存結構,JVM
兩者的內存如何映射,是什么關系,
http://www.open-open.com/lib/view/open1420814127390.html
?
二面:
3 OSI七層模型,問了每層的作用,問了wifi屬于哪一層。
4 線程間的同步用什么方式,
https://www.cnblogs.com/XHJT/p/3897440.html
?
5.使用hashmap時重寫哪兩個方法,為什么要重寫,什么場景下重寫。
https://blog.csdn.net/u014590757/article/details/79501332
hashcode用來提高效率的,為速度而散列。因為散列的Set和Map是基于hashcode方法來查找對象的,所以你在使用這些類的時候一定要覆蓋hashcode方法,而非散列的Set和Map,例如TreeSet,TreeMap等, 不需要重寫hashcode和equals,通過傳入比較器。
6 Spring中的ioc和aop。ioc的注解有哪些。
https://www.cnblogs.com/hoobey/p/6961410.html
https://blog.csdn.net/u011277123/article/details/73518774
autowired和resource有什么區別,
https://blog.csdn.net/weixin_40423597/article/details/80643990
作用域有哪些。
https://blog.csdn.net/panhaigang123/article/details/79452064
autowired如何配置兩個類中的一個
@Autowired是根據類型進行自動裝配的。如果當Spring上下文中存在不止一個UserDao類型的bean時,就會拋出BeanCreationException異常;如果Spring上下文中不存在UserDao類型的bean,也會拋出BeanCreationException異常。我們可以使用@Qualifier配合@Autowired來解決這些問題
?
8 Java內存泄漏、內存溢出
https://blog.csdn.net/wisgood/article/details/16818243
https://blog.csdn.net/anxpp/article/details/51325838
https://blog.csdn.net/bigtree_3721/article/details/50550248
http://www.open-open.com/lib/view/open1453730058980.html
百度智能云
一面
5 事務隔離級別有哪些,默認是什么級別。Mysql(可重復讀)
8 僵尸進程和孤兒進程是什么,分別有什么危害。
https://www.cnblogs.com/Anker/p/3271773.html
https://blog.csdn.net/zhangjg_blog/article/details/18319521
try catch異常處理的jvm底層是什么?
https://blog.csdn.net/hguisu/article/details/6155636
java8新特性
https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/index.html
https://www.cnblogs.com/franson-2016/p/5593080.html
二面:
8、jdk1.8 concurrenthashmap 的新的特性,有沒有看過源碼
10,問了redis擴容,失效key清理策略等
https://blog.csdn.net/men_wen/article/details/72896682
https://blog.csdn.net/wuliusir/article/details/51598372
3,設計一個算法,實現兩個10g大文件在10m的內存中將兩個大文件中重復的放進第三個文件
https://blog.csdn.net/tiankong_/article/details/77234726
老虎證券面試題目:
1、osi七層結構,每層結構都是干什么的?
https://blog.csdn.net/superjunjin/article/details/7841099
2、ping使用了什么協議,icmp,控制報文協議
3、icmp怎么實現ping的
https://www.cnblogs.com/Akagi201/archive/2012/03/26/2418475.html
最左前綴匹配原則,非常重要的原則,mysql會一直向右匹配直到遇到范圍查詢(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)順序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引則都可以用到,a,b,d的順序可以任意調整。
· =和in可以亂序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意順序,mysql的查詢優化器會幫你優化成索引可以識別的形式
阿里菜鳥物流一面(14分鐘):
4、分布式鎖是怎么實現的
覆蓋索引
5.實時查看運行日志了
tail -f aa.log
6、怎么查看系統磁盤大小?(du -h,df -h)
7、怎么查看文件的固定關鍵字?(cat A.txt | grep key)
9.AQS,問AQS實現原理。問AQS在閉鎖,重入鎖中的應用。
https://blog.csdn.net/u010358755/article/details/51063527
https://blog.csdn.net/vernonzheng/article/details/8275624
http://ifeve.com/introduce-abstractqueuedsynchronizer/
虛擬機怎么實現動態綁定
https://blog.csdn.net/sureyonder/article/details/5569617
spring 生命周期
https://www.cnblogs.com/kenshinobiy/p/4652008.html
https://www.jianshu.com/p/3944792a5fff
1.SOA的理解
5.zookeeper的原理
6.zookeeper怎么通信
https://www.cnblogs.com/felixzh/p/5869212.html
8.zookeeper監聽器了解嗎?7怎么監聽
https://blog.csdn.net/hohoo1990/article/details/78617336
9.dubbo的原理
https://blog.csdn.net/qq_33101675/article/details/78701305
https://blog.csdn.net/he90227/article/details/70157046
12.初始化bean干什么你知道嗎?IOC容器初始化
13.獲取容器的引用,ApplicationContextAware
14.activeMQ了解嗎?怎么用
15.activeMQ消息丟失?
16.搭過activeMQ、zookeeper
18.Redis存對象知道嗎
https://blog.csdn.net/softwave/article/details/52202199
19.Redis 的list
https://blog.csdn.net/pfnie/article/details/52204840
5. 內存占滿了怎么辦啊
https://blog.csdn.net/liyanlei5858/article/details/79639274
Linux里用的哪些命令,修改權限的命令,7代表什么意思,如果不用數字還可以用什么
14. 接口抽象類(Java8中的default)
https://blog.csdn.net/zixiao217/article/details/70197520
20. Swap了解嗎
https://blog.csdn.net/x_r_su/article/details/52957559
SQL語句中,from,join,where,having,order by,group by,limit之間的執行順序是怎樣的?
https://www.cnblogs.com/Jessy/p/3527091.html
synchronized在方法上是對象鎖還是類鎖
https://blog.csdn.net/jerrywu145/article/details/79821094
mysql 索引底層實現,為什么不用紅黑樹
https://blog.csdn.net/buyulian/article/details/77996253
如何優化頁面請求速度
https://blog.csdn.net/weightwwc/article/details/5251724
2從瀏覽器輸入網址到出現網頁發生了什么
https://www.cnblogs.com/kongxy/p/4615226.html
6描述異常類的體系
7描述集合類的體系
10多線程的優點,單核CPU是如何調度多線程的,為什么單核CPU調度多線程也能有比較高的效率
https://blog.csdn.net/jia416644/article/details/77367470
二面
1.cookie和session的區別。然后又問session在服務器端具體是怎樣的實現的,當session中的數據量過大的時候,主要對服務器的哪些方面造成影響?CPU?內存?網絡?
3Javascript中的雙等號和三等號的區別
https://blog.csdn.net/ntc10095/article/details/51302920
11. 數據庫用到的***作,索引(B+樹,B+樹與B樹區別),增加節點,刪除節點,B+樹原理?
6)nio與bio的區別。
7)nio的實現
https://blog.csdn.net/u013851082/article/details/53942947#commentBox
https://blog.csdn.net/skiof007/article/details/52873421
8)虛擬機,什么時候會進行Full GC。
https://blog.csdn.net/yhyr_ycy/article/details/52566105
9)什么時候需要打破雙親委派模型。
10)一個類的靜態塊會被執行兩次嗎?為什么。
https://blog.csdn.net/jimoluoxue2016/article/details/79141389
11)動態代理的實現。
12)cglib無法增強的類,final修飾的類。
https://blog.csdn.net/zghwaicsdn/article/details/50957474
13)spring容器的啟動過程。
https://blog.csdn.net/u013510838/article/details/75066884#commentBox
14)數據庫隔離級別中可重讀讀的實現。
https://blog.csdn.net/huanghanqian/article/details/79517480
https://blog.csdn.net/whoamiyang/article/details/51901888
https://www.cnblogs.com/YFYkuner/p/5178684.html
15)什么情況下索引會失效。
https://www.jianshu.com/p/9c9a0057221f
https://www.cnblogs.com/areyouready/p/7802885.html
幻讀:間隙鎖
https://blog.csdn.net/soonfly/article/details/70238902
2)使用過concurrent包下的哪些類,使用場景等等。
https://blog.csdn.net/lh87522/article/details/45973373
concurrenthashmap1.8
https://blog.csdn.net/u010723709/article/details/48007881
https://blog.csdn.net/universe_ant/article/details/71334648
4)ReentrantLock的實現原理。
https://www.cnblogs.com/xrq730/p/4979021.html
https://www.jianshu.com/p/fe027772e156
5)FutureTask的實現原理。
https://blog.csdn.net/codershamo/article/details/51901057
7)線程池有哪些RejectedExecutionHandler,分別對應的使用場景
畫出代理模式與適配器模式的uml類圖。(待解決)
9)手寫djikstra算法
Mysql知識點
https://www.cnblogs.com/PiPifamily/p/8655458.html
10億數字找最大100個數,不考慮內存問題
3、存在大量closed_wait有什么危害
http://www.voidcn.com/article/p-kksszaoc-r.html
CLOSE_WAIT狀態不會自己消失,除非對應的應用進程死掉,不會消失就意味著一直占用服務器資源,端口總數又只有65535,因此這里的服務器作為連接的發起者就會造成大量端口被占用,一旦占用完就導致后面的請求都發不出去
5、如何設計一個線程安全的hashmap
https://soulmachine.gitbooks.io/system-design/content/cn/hashmap.html
7、mysql寫數據的時候,需要先將數據寫到buffer里,再寫到磁盤里,萬一MySQL這時候突然掛了,怎么辦?redo undo checkPoint
Nginx服務器(待解決)
16、背包算法
https://blog.csdn.net/a784586/article/details/63262080
4、osi模型,每一層做了什么事情,有什么協議
上傳文件不用刷新頁面的方案
https://www.nowcoder.com/questionTerminal/a6af4fdfacc347a69e536557a27e4d5b?orderByHotValue=1&page=1&onlyReference=false
9、組合索引?B+樹如何存儲的?
https://blog.csdn.net/weixin_30531261/article/details/79329722
https://www.cnblogs.com/gengsc/p/7230514.html
11、跳臺階=遞歸非遞歸,兩種解法
12、生日概率問題
https://www.zybang.com/question/888b12cdab13f8db9d50ac02ea8f5978.html
?
一面,
1:為什么緩存更新策略是先更新數據庫后刪除緩存
https://coolshell.cn/articles/17416.html
?
2:兩個線程打印1.2.3.4打印到100怎么實現
https://blog.csdn.net/random_7474/article/details/52770222
https://blog.csdn.net/lmaz007/article/details/8753529
3 spring的aop的實現方式,aspectj和jdk動態代理,cglib動態代理,講了下實現的原理 (重要)
?
二面,
2.假如雙十一等一些促銷有高并發訪問量要來訪問我們的數據,怎么樣做到可靠的服務
https://blog.csdn.net/u011225629/article/details/47393169
1.jvm虛擬機老年代什么情況下會發生gc,給你一個場景,一臺4核8G的服務器,每隔兩個小時就要出現一次老年代gc,現在有日志,怎么分析是哪里出了問題
https://blog.csdn.net/topdeveloperr/article/details/81303745
三面,7.20:
1消息隊列的生產者消費者中消費者沒有收到消息怎么辦,
https://blog.csdn.net/u010310183/article/details/51683141
2下單過程中是下訂單減庫存還是付款減庫存,分析一下兩者的優劣
http://blog.sina.com.cn/s/blog_9841ded30102wizh.html
3 高并發場景的限流,你怎么來確定限流限多少,
https://blog.csdn.net/wangnan9279/article/details/79287646
https://www.jianshu.com/p/2596e559db5c
?
螞蟻金服:
?
2 緩存是怎么使用的,里面存哪些東西,為什么要存這些東西,哪些高并發場景不能使用緩存;
https://blog.csdn.net/dinglang_2009/article/details/53464196
https://blog.csdn.net/simba_1986/article/details/77823309
?
5 http報文頭部是什么,為什么要有版本號,1.0,1.1,2.0的區別,2.0中的多路復用怎么實現會話的串行傳輸;
https://www.jianshu.com/p/52d86558ca57
https://blog.csdn.net/zhuyiquan/article/details/69257126?locationNum=4&fps=1
?
6 自己設計一個數據庫連接池怎么設計;
https://blog.csdn.net/clint2002/article/details/9312125
7 怎么用原生的JDBC訪問數據庫;
https://blog.csdn.net/xiaozhegaa/article/details/70208646
?
8 阻塞隊列不用java提供的自己怎么實現
https://blog.csdn.net/new_aiden/article/details/72453257
9 擁塞窗口講一講,為什么要用慢啟動算法;
https://www.jianshu.com/p/e715e439e4d4
1CPU使用率100%怎么分析解決;
https://blog.csdn.net/mrczr/article/details/56834796
https://blog.csdn.net/green1893/article/details/72357032
https://blog.csdn.net/hj7jay/article/details/79000657
補碼反碼,
https://www.cnblogs.com/author/p/8954127.html
?
第二批
京東一面(1個小時):
9 快速排序和堆排序對比,快排怎么優化(三向切分,主要用于具有大量重復數據的情況,可以大大提高效)
https://blog.csdn.net/qq_28352347/article/details/69159271
10 jdbc***作數據庫流程,如果加入事務,流程又是怎么樣
https://blog.csdn.net/weiqianghu/article/details/46761343
5 CAP的理解 分布式詳解
https://www.jianshu.com/p/1156151e20c8
一面
8.共享內存是如何實現的,如何保證同步問題
https://blog.csdn.net/u011244446/article/details/52608002
4.進程調度方式
https://blog.csdn.net/nishiwodeangel/article/details/9816667
網易一面:
2、A、B、C并發執行完,D、E、F并發執行實現方式
https://blog.csdn.net/wangtaomtk/article/details/52301892
4、CountDownLatch、LinkedHashMap、AQS實現原理
?
9、Condition和sychronized實現Condition兩種方式有什么區別
Condition的強大之處在于它可以為多個線程間建立不同的Condition
15、Redis集群方式
https://www.zhihu.com/question/21419897
https://www.jianshu.com/p/14835303b07e
17、Redis備份
https://blog.csdn.net/wzzfeitian/article/details/42081969
?
24、MySQL日志文件
https://blog.csdn.net/zidasine/article/details/5436981
mysql默認存儲引擎?MyISAM、InnoDB、MEMORY的區別
http://ailikes.iteye.com/blog/2280546
AQS詳細原理
https://www.cnblogs.com/qcblog/p/7750388.html
?
9月6號二面
https://blog.csdn.net/zhaowen25/article/details/45443951
https://qinjiangbo.com/rpc-services-vs-http-services.html
https://blog.csdn.net/b1303110335/article/details/79557292
https://blog.csdn.net/hll814/article/details/50891417
?
https://www.cnblogs.com/yangmingxianshen/p/8054094.html
https://my.oschina.net/javahongxi/blog/1524085
https://www.cnblogs.com/micrari/p/7643668.html
http://www.cnblogs.com/flotang/archive/2018/06/23/9216098.html
9.單點登錄?
https://blog.csdn.net/WuCourage/article/details/77802812
?
11.100的階乘后面有幾個0? 24
https://blog.csdn.net/fightforyourdream/article/details/16338883
?
SpringMVC參數綁定實現原理
http://www.cnblogs.com/w-y-c-m/p/8443892.html
?
200G數據,每一行一個字符串,CPU 8G,排序(分治法、歸并)
https://blog.csdn.net/shangqing1123/article/details/47811945
?
200G數字,每一行一個數字 去除重復并排序(位圖)
https://www.cnblogs.com/yangjiannr/p/da-shu-ju-chu-libitmap.html
?
一面:
?
mysql的having和內連查詢
https://www.cnblogs.com/rollenholt/archive/2012/05/15/2502551.html
https://blog.csdn.net/bingogirl/article/details/52559302
https://blog.csdn.net/u012129558/article/details/51253644
?
Linux 相關
1 僵尸進程
https://www.cnblogs.com/Anker/p/3271773.html
?
2 日志或者字符文件處理命令
https://www.cnblogs.com/zdz8207/p/linux-log-tail-cat-tac.html
https://www.cnblogs.com/aaronLinux/p/8038520.html
最短路徑的兩種算法 (jianboke)
圖有哪些存儲結構
https://blog.csdn.net/wstz_5461/article/details/78290682
設計模式了解嗎?策略模式?責任鏈模式?
緩存一致性
https://coolshell.cn/articles/17416.html
https://www.cnblogs.com/johnsblog/p/6426287.html
四面
https://www.cnblogs.com/aflyun/p/9194104.html
http://www.codeweblog.com/java%E6%9F%A5%E7%9C%8B%E5%A0%86%E5%86%85%E5%AD%98%E7%9A%84%E5%91%BD%E4%BB%A4%E5%8F%8A%E6%96%B9%E6%B3%95/
https://blog.csdn.net/john8169/article/details/55802651
美團一面:
1.進程間共享內存的方式有哪些?(8種)
https://www.cnblogs.com/wust221/p/5414839.html
2.linux下如何查看網絡端口狀態(netstat),如何查看內存使用情況(top);
7.給你n個不重復的整數,隨機找出m個不重復的整數,要求時間和空間復雜度都是O(m)。(方法很簡單,就是每次把取出來的數放到后面,只在前面的數組隨機訪問就可以了,)。
15.說說mybatis配置了xml過后是如何完成數據庫***作的? 底層實現
https://blog.csdn.net/luanlouis/article/details/40422941
https://blog.csdn.net/qq_33824312/article/details/73771008
https://blog.csdn.net/qq_21420941/article/details/61030974
https://blog.csdn.net/wuke929229/article/details/79032506
3. 數據庫范式
https://www.cnblogs.com/knowledgesea/p/3667395.html
?
7. 單例模式的用處,是否所有的共享對象都用單例模式
https://www.cnblogs.com/damsoft/p/6105122.html
https://www.cnblogs.com/tangxiao1996/p/7899393.html
?
15 哪些情況會觸發full gc,full gc是否包括young gc和major gc,如果只包括這兩個,為什么要特地做full gc,我回答的是full gc還會回收方法區和堆外內存。
https://blog.csdn.net/chengxuyuanxingcheng/article/details/58729631
http://www.importnew.com/15820.html
?
19 服務注冊中心實現什么功能,消費者的本地緩存如果失效了怎么辦
https://blog.csdn.net/xiaohuzi__945/article/details/79606845
?
?
12、幻讀的避免是如何實現的? 間隙鎖
https://www.jianshu.com/p/2953c64761aa
https://blog.csdn.net/ashic/article/details/53735537
?
10. http請求報文頭格式?http長連接和短連接的區別?
5.java的線程和***作系統的線程什么關系
https://blog.csdn.net/cringkong/article/details/79994511
7.hash沖突的解決方式,如何判斷各個方式的優劣
大量的 CLOSE_WAIT 會怎么樣?
1.占用系統內存?
2. 如果連接數滿了就不能對相應的對段端口創建連接了
某種情況下對方關閉了socket鏈接,但是我方忙與讀或者寫,沒有關閉連接。
對稱加密與非對稱加密區別。
https://www.cnblogs.com/labimeilexin/p/7350448.html
SpringBoot和SpringCloud的理解
Spring Cloud架構
我們從整體來看一下 Spring Cloud主要的組件,以及它的訪間流程
1、外部或者內部的非 Spring Cloud目都統一通過API網關(Zuul)來訪可內部服務.
2、網關接收到請求后,從注冊中心( Eureka)獲取可用服務
3、由 Ribbon進行均負載后,分發到后端的具體實例
4、徹服務之間通過 Feign進行通信處理業務
5、 Hystrix負責處理服務超時熔斷
6、 Turbine監控服務間的調用和焠斷相關指標
?
?
Redis多路復用
https://blog.csdn.net/tanswer_/article/details/70196139
?
?
算法題:
1.不用pow計算開根
https://blog.csdn.net/lsq_401/article/details/79678187
?
2.有序數組合并
https://www.cnblogs.com/clarke157/p/6910425.html
?
10.不用乘法實現乘法
https://blog.csdn.net/chen134225/article/details/81569009
?
1:求階乘和
?
寫一下二叉樹深度遍歷非遞歸。
https://my.oschina.net/husthang/blog/852982
https://blog.csdn.net/snow_7/article/details/51818580
?
與作者交流:https://www.nowcoder.com/discuss/120239
更多筆經面經:https://www.nowcoder.com/discuss?order=3&type=2
總結
以上是生活随笔為你收集整理的各大公司java面试整理对应问题博客整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FAIR重磅发布大规模语料库XNLI:解
- 下一篇: java多线程系列:通过对战游戏学习Cy