2018年Java大企業面試問題
Cvte提前批
阿里內推
便利蜂內推
小米內推
金山wps內推
多益網路
拼多多學霸批
搜狗校招
塗鴉移動
中國電信it研發中心
中興
華為
蘇寧內推
美團內推
百度
騰訊
招商銀行信用卡
招銀網路科技
網易
Vivo
Cvte提前批
一面(電話)
-
自我介紹
-
介紹你的專案
-
加密解密瞭解麼?幾種演算法,講一下你瞭解的
-
多執行緒瞭解麼?什麼是執行緒安全?
-
說一個你最熟悉的設計模式
-
講一下你專案中用到了哪些設計模式
-
Java的hashmap的原理
-
Hashmap的執行緒安全性,什麼是執行緒安全的?如何實現執行緒安全
二面(視訊)
-
自我介紹
-
介紹專案
-
Mysql的資料庫引擎,區別特點
-
設計模式瞭解?講一下最熟悉的
-
寫一個單例模式,答主寫的是雙檢查鎖單例,問了為什麼用Volatile,synchronize移到方法最外面會怎麼樣?
-
單例模式在你專案裡哪些應用?
-
資料連線池
-
對高負載有了解麼
-
你意向的技術方向是哪塊?(答主回答的高併發,然後面試官說他是做高負載的)
-
對高併發有了解麼?
阿里內推
一面(電話)
-
聽說你有部落格,部落格裡大概有什麼內容?
-
專案介紹,最複雜的表
-
Hashmap的原理
-
Hashmap為什麼大小是2的冪次
-
介紹一下紅黑樹
-
Arraylist的原理
-
場景題:設計判斷論文抄襲的系統
-
堆排序的原理
-
抽象工廠和工廠方法模式的區別
-
工廠模式的思想
-
object類你知道的方法
-
哪裡用到了工廠模式
-
Forward和redirect的區別
二面(視訊)
1, 自我介紹
2, 專案介紹
3, 專案架構
4, 專案難點
5, Synchronize關鍵字為什麼jdk1.5後效率提高了
6, 執行緒池的使用時的注意事項
7, Spring中autowire和resourse關鍵字的區別
8, Hashmap的原理
9, Hashmap的大小為什麼指定為2的冪次
10, 講一下執行緒狀態轉移圖
11, 訊息隊列了解麼
12, 分散式瞭解麼
便利蜂內推
一面(電話)
-
自我介紹
-
專案介紹
-
volatile和synchronized
-
來個演算法題:一個無序陣列,其中一個數字出現的次數大於其他數字之和,求這個數字 (主元素)
-
答完再來一個:一個數組,有正有負,不改變順序的情況下,求和最大的最長子序列
-
專案用到什麼資料庫?隔離級別?每個隔離級別各做了什麼
-
資料庫的索引?mysql不同引擎索引的區別
-
垃圾回收演算法的過程
-
你瞭解的垃圾收集器? Cms收集器的過程
-
怎樣進入老年代?
-
平時用到了什麼設計模式?
-
講一下你最熟的兩個設計模式
-
用過什麼系統?shell寫過指令碼嗎?
小米內推
一面(電話)
-
自我介紹
-
看你最近部落格寫的是redis,介紹redis和mysql的區別
-
Redis的應用場景
-
Hashmap的原理
-
Hashmap中jdk1.8之後做了哪些優化
-
垃圾回收的過程
-
Jvm的引數設定
-
專案中的優化
金山wps內推
一面(電話)
-
自我介紹
-
專案介紹
-
對Java的面向物件的理解
-
對java多執行緒的理解
-
資料庫的索引
-
資料庫的隔離級別
-
設計模式的理解
-
講幾個設計模式
-
對演算法有什麼瞭解?答主先回答了動態規劃,解釋了一下dp的思想
-
快排的思想講一下
二面(電話)
-
自我介紹
-
專案介紹
-
Tcp怎麼保證可靠傳輸(中間穿插了好多小問題)
-
Tcp的擁塞控制
-
讓你設計一個即時聊天的系統
-
支付寶轉賬,是如何實現,幾個小時通知轉賬成功的(面試官想讓回答長連線,答主一直沒get到點)
-
解釋一下長連線
多益網路
一面(視訊)
-
自我介紹
-
對面向物件的理解
-
介紹多型
-
Java新建執行緒有哪幾種方式
-
執行緒池的作用
-
看過框架原始碼麼
拼多多學霸批
一面(現場面)
-
自我介紹
-
專案介紹
-
手撕演算法:一棵二叉排序樹,給定一個數,找到與給定數差值最小的數
-
場景題:設計一個系統,解決搶購時所需要的大量的短連結的功能,如何保證高併發,如何設計短連結
二面(現場面)
-
程式碼量多少
-
給了一張紙,各種名詞,會的寫出來
-
然後給它解釋那些會的
-
設計題:設計一個系統,記錄qq使用者前一天的登入狀態,提供16g記憶體和2tb的硬碟,要做到查詢指定qq號的前一天的登入狀態,快速查詢O(1)複雜度
搜狗校招
一面(現場):
-
自我介紹
-
專案介紹
-
手撕演算法:兩個排序的陣列A和B分別含有m和n個數,找到兩個排序陣列的中位數,答主用的二分,時間複雜度為O(log (m+n))。結果面試官不滿意,讓用歸併的思想做,時間複雜度其實更高了
-
介紹網路程式設計
塗鴉移動
一面(現場)
-
自我介紹
-
專案介紹
-
資料庫的索引原理
-
索引使用的注意事項
-
資料庫的引擎
-
Java垃圾回收機制
-
Java的finalize,finally,final三個關鍵字的區別和應用場景
-
String類可以被繼承麼
手撕演算法:假設你是一個專業的竊賊,準備沿著一條街打劫房屋。每個房子都存放著特定金額的錢。你面臨的唯一約束條件是:相鄰的房子裝著相互聯絡的防盜系統,且 當相鄰的兩個房子同一天被打劫時,該系統會自動報警。
給定一個非負整數列表,表示每個房子中存放的錢, 算一算,如果今晚去打劫,你最多可以得到多少錢 在不觸動報警裝置的情況下。
二面(電話)
-
自我介紹
-
對遊戲的瞭解
-
專案介紹
-
演算法題:給一個整數陣列,找到兩個數使得他們的和等於一個給定的數 target。
-
紅黑樹
-
Redis的應用
中國電信it研發中心
一面(現場)
-
自我介紹
-
專案介紹
-
專案裡用的什麼伺服器
-
自己寫一個tomcat伺服器,你會怎麼寫
-
分散式伺服器會出現哪些問題
-
怎麼解決session一致性快取的問題
-
Redis的優勢和特點
-
一千萬使用者併發搶購,怎麼設計
-
如果成功的使用者有10萬,redis存不下怎麼處理
-
你專案中的難點
二面(現場)
-
自我介紹
-
專案介紹
-
介紹spring中的熟悉的註解
-
讓你實現autowire註解的功能你會如何實現
-
Redis和mysql的區別
-
Redis的持久化有哪些方式,具體原理
中興
專業面(現場)
-
自我介紹
-
專案介紹
-
你瞭解的設計模式,講兩個
-
Java collection類,集合,講兩個你瞭解的,說實現原理
-
Java執行緒池的作用
-
你覺得你在你實驗室處於什麼水平
綜合面試(現場)
說好的綜合面試純聊天呢?
1. 自我介紹
2. 專案介紹
3. 說一下你知道的設計模式
4. 畫一個策略模式的uml圖
5. Java多執行緒的理解
6. 記憶體屏障是什麼
7. 資料庫索引
8. 專案中的優化
9. 然後開始聊人生
10. 你的缺點,你最不喜歡什麼樣的人,你的家庭等等
華為
一面(現場)
-
自我介紹
-
專案介紹
-
專案架構
-
專案一個完整的執行流程(由於我是搞java的,而面試官是搞c的,所以全程尬聊)
-
專案優化
二面(現場)
-
自我介紹
-
專案介紹
-
怎麼管理專案進度
-
平常的愛好
-
感覺面試官也不是搞java的,所以又是一陣尬聊
蘇寧內推
一面(現場)
-
自我介紹
-
專案介紹
-
面過哪些公司了
-
有哪些offer了
-
聊到多益,於是開始聊最近微博上很火的多益老闆
-
得出結論,我和麵試官都覺得多益老闆三觀有問題,但做遊戲就是要偏執的人
-
你部落格主要哪方面的
-
多執行緒併發包瞭解麼
-
講一下countDownLatch
蘇寧聊了20分鐘八卦就面完了,一輪技術面
美團內推
一面(電話)
-
自我介紹
-
專案介紹
-
Redis介紹
-
瞭解redis原始碼麼
-
瞭解redis叢集麼
-
Hashmap的原理
-
hashmap容量為什麼是2的冪次
-
hashset的原始碼
-
object類你知道的方法
-
hashcode和equals
-
你重寫過hashcode和equals麼,要注意什麼
-
假設現在一個學生類,有學號和姓名,我現在hashcode方法重寫的時候,只將學號參與計算,會出現什麼情況?
-
往set裡面put一個學生物件,然後將這個學生物件的學號改了,再put進去,可以放進set麼?並講出為什麼
-
Redis的持久化?有哪些方式,原理是什麼?
-
講一下穩定的排序演算法和不穩定的排序演算法
-
講一下快速排序的思想
二面(現場)
-
自我介紹
-
講一下資料的acid
-
什麼是一致性
-
什麼是隔離性
-
Mysql的隔離級別
-
每個隔離級別是如何解決
-
Mysql要加上nextkey鎖,語句該怎麼寫
-
Java的記憶體模型,垃圾回收
-
執行緒池的引數
-
每個引數解釋一遍
-
然後面試官設定了每個引數,給了是個執行緒,讓描述出完整的執行緒池執行的流程
-
Nio和IO有什麼區別
-
Nio和aio的區別
-
Spring的aop怎麼實現
-
Spring的aop有哪些實現方式
-
動態代理的實現方式和區別
-
Linux瞭解麼
-
怎麼檢視系統負載
-
Cpu load的引數如果為4,描述一下現在系統處於什麼情況
-
Linux,查詢磁碟上最大的檔案的命令
-
Linux,如何檢視系統日誌檔案
-
手撕演算法:leeetcode原題 22,Generate Parentheses,給定 n 對括號,請寫一個函式以將其生成新的括號組合,並返回所有組合結果。
三面(現場)
三面沒怎麼問技術,問了很多技術管理方面的問題
-
自我介紹
-
專案介紹
-
怎麼管理專案成員
-
當意見不一致時,如何溝通並說服開發成員,並舉個例子
-
怎麼保證專案的進度
-
資料庫的索引原理
-
非聚簇索引和聚簇索引
-
索引的使用注意事項
-
聯合索引
-
從底層解釋最左匹配原則
-
Mysql對聯合索引有優化麼?會自動調整順序麼?哪個版本開始優化?
-
Redis的應用
-
Redis的持久化的方式和原理
-
技術選型,一個新技術和一個穩定的舊技術,你會怎麼選擇,選擇的考慮有哪些
-
說你印象最深的美團點評技術團隊的三篇部落格
-
最近在學什麼新技術
-
你是怎麼去接觸一門新技術的
-
會看哪些書
-
怎麼選擇要看的書
百度
一面(現場)
-
自我介紹
-
Java中的多型
-
Object類下的方法
-
Finalize的作用和使用場景
-
Hashcode和equals
-
為什麼要同時重寫hashcode和equals
-
不同時重寫會出現哪些問題
-
Hashmap的原理
-
Hashmap如何變執行緒安全,每種方式的優缺點
-
垃圾回收機制
-
Jvm的引數你知道的說一下
-
設計模式瞭解的說一下啊
-
手撕一個單例模式
-
快速排序的思想講一下
-
給個數組,模擬快排的過程
-
手寫快排
-
設計題,一個圖書館管理系統,資料庫怎麼設計,需求自己定
二面(現場)
-
自我介紹
-
專案介紹
-
Redis的特點
-
分散式事務瞭解麼
-
反爬蟲的機制,有哪些方式
-
手撕演算法:反轉單鏈表
-
手撕演算法:實現類似微博子結構的資料結構,輸入一系列父子關係,輸出一個類似微博評論的父子結構圖
-
手寫java多執行緒
-
手寫java的soeket程式設計,服務端和客戶端
-
程序間的通訊方式
-
手撕演算法: 爬樓梯,寫出狀態轉移方程
-
智力題:時針分針什麼時候重合
三面(現場)
由於三面面試官不懂java,我不熟c加加,所以全程尬聊
-
自我介紹
-
專案介紹
-
手撕演算法:給定一個數字三角形,找到從頂部到底部的最小路徑和。每一步可以移動到下面一行的相鄰數字上。
-
-
然後繼續在這個問題上擴充套件
-
求出最短那條的路徑
-
遞迴求出所有的路徑
-
設計模式講一下熟悉的
-
會不會濫用設計模式
-
多執行緒條件變數為什麼要在while體裡
-
你遇到什麼挫折
騰訊
一面(現場)
-
自我介紹
-
專案介紹
-
Hibernate的作用,你的理解
-
多執行緒的理解,如何保證執行緒安全
-
mysql資料庫的引擎和區別
-
場景題:千萬使用者搶購,如何處理高併發,並且有一個連結,指向前一天搶購成功的使用者,如何設計這個系統和資料庫
-
如果後臺處理搶購請求的伺服器,每次最多承受200的負載,系統該怎麼設計
-
手撕演算法:最小公倍數和最大公約數
二面
-
自我介紹
-
專案介紹
-
專案裡一個完整請求的流程
-
專案的優化
-
Hibernate和mybatis的區別
-
為什麼用ssh框架
-
Mysql的容災備份
-
Redis和memcache 的區別
-
為什麼選擇redis
-
Java的full gc
-
Full gc會導致什麼問題
招商銀行信用卡
一面
-
自我介紹
-
分散式事務
-
設計模式
-
訪問者模式
-
裝飾者模式
-
有哪些offer
-
為什麼還來我們這
招銀網路科技
一面
-
自我介紹
-
寫一個兩個有序連結串列合併成一個有序連結串列
-
死鎖是什麼呢
-
怎麼解決死鎖
-
http請求流程
-
為什麼負載均衡
-
怎麼實現負載均衡
-
資料庫掛了怎麼辦?除了熱備份還有什麼方法
-
講講你對spring的理解,不要把ioc和aop背給我聽
二面
-
自我介紹
-
專案介紹
-
演算法:找出兩個陣列相等的數,不能用其他資料結構
-
演算法:給定一個數字,一個數組,找出陣列中相加等於這兩個數的和,不能用資料結構
-
演算法:如何判斷一個樹是不是另一顆樹的子樹
-
如何解決併發訪問的錯誤
網易
一面(現場)
-
自我介紹
-
專案介紹
-
I++操作怎麼保證執行緒安全
-
場景題:設計一個下單系統,下單成功後可以給使用者發優惠券
-
接上面場景題:伺服器掛了,優惠券還沒發怎麼辦
-
資料庫掛了怎麼怎麼辦
-
怎麼保證一致性
-
分散式事務知道麼
-
介紹分散式事務
-
你的職業規劃
二面
-
自我介紹
-
專案介紹
-
Nio的原理
-
Channel和buffer
-
directBuffer和buffer的區別
-
nio和aio的區別
-
鎖的實現原理
-
怎麼解決快取和主存的一致性問題
-
快取還沒更新到主存,伺服器掛了怎麼辦
-
資料庫掛了怎麼辦
Vivo
一面
-
自我介紹
-
專案介紹
-
Hibernate的batch有數量限制麼
-
Jquery用過麼
-
Extjs的優缺點
-
有沒有擴充套件過extjs
-
讀寫鎖
-
什麼時候用讀鎖
-
什麼時候用寫鎖
-
Cas的原理,使用場景
-
資料庫的瓶頸
附錄面試知識圖
併發多執行緒
加解密
設計模式
資料結構和演算法
Java知識、集合
資料庫引擎、索引、連線池、事物和讀寫鎖、ACID、瓶頸
訊息佇列
分散式、事物、分散式鎖、CAS
虛擬機器、記憶體模型、JVM配置和垃圾回收
Tomcat伺服器、Session一致性
HTTP協議和TCP協議
Spring、SpringBoot、SpringCloud
Redis、Mybatis、Socket、Netty、NIO
專案優化
Linux、Shell指令碼