1、技術面(兩面分開一起,1h)
問項目、問八股文
(1)B-樹、B+樹和紅黑樹(會引出MySQL)
【解析】
引言:平衡二叉樹由于樹深度過大,每訪問一個節點,相當于就是進行了一次I/O操作,造成磁盤IO讀寫過于頻繁,進而導致效率低下。為了減少磁盤IO次數,需要降低樹的高度,因此每個節點上存儲多個元素,每個節點有多個孩子,誕生了多路查找樹!確保查找效率在O(log n)以上。
【B-樹】——多路平衡查找樹,每個節點都會存放數據。查找思路和二叉查找樹類似(二分思想),節點上有多個數據,每個節點有多個子節點,所有葉子節點在同一高度。B樹的每一個節點都包含key和value,因此經常訪問的元素可能離根節點更近,因此訪問也更迅速
【B+樹】——B樹的變種,相比于B樹查詢效率更高,它更適合操作系統的文件索引和數據庫索引。它的節點不存放數據,只用來索引,**所有數據都存放在葉子節點,并且葉子節點有指針相連**。
上海萬得信息技術股份有限公司java軟件開發工程師面試題
(1)B-樹、B+樹和紅黑樹(會引出MySQL)
(2)隊列熟悉嗎?(如阻塞隊列)
【解析】阻塞隊列——原理是生產者+消費者模式,有七種隊列,用于線程池的任務隊列。
(3)線程池優化,四大線程池的特點(高并發)
(4)兩個Text文件(A,B),A文件內一億行數據,B文件內一億一百行數據,如何兩個找出數據差異
(5)String、StringBuffer和StringBuilder
(6)Synchronized和lock區別,底層原理是?synchronized一定是重量級鎖嗎?
(7)SQL語言 where like %ABC 和where like ABC% 哪個先執行?
【解析】
==線程池作用==:線程復用,管理調度線程,提高效率,減少頻繁創建和銷毀線程的開銷,控制并發
==線程池優化==:主要參數的設置(核心線程數,最大線程數,存活時間,任務隊列大小(有界還是無界),拒絕策略),要權衡利弊,不同場景使用不同的配置線程池。
面試全程是兩個面試官,大概問了就是tcp,udp樹,隊列,數據庫等相關內容,因為兩個人是輪流進入會議的,所以問的內容相互不知道,基本上都是一樣的
面試官問的面試題:上海萬得信息技術股份有限公司java開發面試題
tcp
udp
二叉樹
排序算法
項目中用到的相關聯的各種類型的技術
為什么做這個項目
平時有什么愛好
為什么要去蘇州發展
一面是電話面試聊了大概一個小時,先是自我介紹,然后介紹下項目。進入提問環節,面完后 直接通知了明天去現場二面 需要上機編程
面試官問的面試題:上海萬得信息技術股份有限公司JAVA開發工程師面試題
mq消息避免丟失,如何冪等,如何做延遲隊列,ioc 過程,springboot 原理,數據庫索引原理,redis 分布式鎖,jvm原理