標籤:伺服器安全 伺服器 崗位 線程池 專案管理 演算法 線程 包括 開始
最近離職了, 面了幾家java的進階崗位, 深有感觸, 特此寫一篇部落格記錄下.
感想1 : 好久沒面試了, 很多概念性的東西都忘了, 前幾次面試好尷尬, 話都感覺說不清楚了. 後來面了幾次以後心裡有數了, 就開始從容不迫起來. 具體面試問題其實也沒多難, 在末尾我會給出這幾天的面試考察點.
感想2 : 之前公司呆的太舒適了, 雖然平時也看書的, 但是沒那種危機意識, 看的很隨意, 還好這次離職發現了自己的不足點.
感想3 : 原本很怕面試的, 後來轉念一想, 你去別人面試, 相當於免費的考試, 是對自身技術的審查, 還是免費的, 而且很多面試官人很好, 這幾次面試很多面試官也給了我很多建議, 對我的協助也比較大的. 而且可以擷取外部現在的主流技術架構, 擴充視野, 可以說好處多多.
下半部分介紹下我這次面試主要問的方面, 這次面了四天, 大概面了十幾家公司吧, 其實考點都大同小異 :
1: java基礎, 主要包括多線程, JVM, 容器. 也有可能混合考, 多線程主要由淺入深開始考察, 包括多線程運行狀態, 線程的可見度, CAS以及實現方式, 鎖, 鎖最佳化, 線程建立方式, 線程池.
JVM包括堆記憶體配置, 記憶體回收行程的幾種類型, java記憶體模型 ,JVM調優. 這塊感覺問的比較少, 可能是我答的不夠好, 所以沒問深入.
容器主要考察容器的介面, 問HashMap的比較多, HashMap如何解決hash衝突的, put操作的流程, 為什麼會線程不安全, HashTable與currenthashmap 的不同,
2 : 資料庫, 主要在於資料庫中介軟體, 資料庫設計規範, 資料庫範式以及反範式的應用, 資料庫最佳化 ,索引
資料庫中介軟體主要要瞭解其中原理, 最好自己使用過.
設計規範主要是表結構, 欄位命名, 冗餘設計, 分庫分表, 命名規範, 注釋之類的
資料庫最佳化比較複雜, 有索引最佳化, 索引的使用情境, 索引的失效情境, 索引建立的注意點, 索引的類型, 如果資料結構好的話會要你說B+樹的相關操作. 慢日誌查詢分析 , 分庫分表.
索引有可能單獨拿出來問, 裡面內容很多, 建議自己查詢相關資料進行補充, 畢竟這塊還是蠻重要的.
3 : nosql ,這塊問redis的比較多, 所以可以重點看看, redis的結構以及內部實現方式, redis安全, 緩衝淘汰策略, redis實現持久化的原理, 並發情況下redis的相關操作, 緩衝可能出現的問題(緩衝雪崩, 緩衝並發, 緩衝雪崩) ,如何確保緩衝一致性 (緩衝更新的套路)
4 : 工作經曆的項目, 特點, 痛點, 技術亮點. 如果你進行重構, 你會怎麼做, 為什麼, 有什麼好處.
上面四部分基本上是必問的, 其餘可能問的有 : 伺服器安全, 介面最佳化, 專案管理, linux操作, 演算法, Spring, 網路, JS , 訊息中介軟體. 所以還是要注重平時積累. 尤其是基礎知識積累, 經過多次查漏補缺, 彌補了自己很多不足, 所以覺得這次跳槽還是很有價值的.
java進階面試感想