最近離職了, 面了幾家java的高級(jí)崗位, 深有感觸, 特此寫一篇博客記錄下.
感想1 : 好久沒面試了, 很多概念性的東西都忘了, 前幾次面試好尷尬, 話都感覺說不清楚了. 后來面了幾次以后心里有數(shù)了, 就開始從容不迫起來. 具體面試問題其實(shí)也沒多難, 在末尾我會(huì)給出這幾天的面試考察點(diǎn).
感想2 : 之前公司呆的太舒適了, 雖然平時(shí)也看書的, 但是沒那種危機(jī)意識(shí), 看的很隨意, 還好這次離職發(fā)現(xiàn)了自己的不足點(diǎn).
感想3 : 原本很怕面試的, 后來轉(zhuǎn)念一想, 你去別人面試, 相當(dāng)于免費(fèi)的考試, 是對(duì)自身技術(shù)的審查, 還是免費(fèi)的, 而且很多面試官人很好, 這幾次面試很多面試官也給了我很多建議, 對(duì)我的幫助也比較大的. 而且可以獲取外部現(xiàn)在的主流技術(shù)框架, 擴(kuò)展視野, 可以說好處多多.
下半部分介紹下我這次面試主要問的方面, 這次面了四天, 大概面了十幾家公司吧, 其實(shí)考點(diǎn)都大同小異 :
1: java基礎(chǔ), 主要包括多線程, JVM, 容器. 也有可能混合考, 多線程主要由淺入深開始考察, 包括多線程運(yùn)行狀態(tài), 線程的可見性, CAS以及實(shí)現(xiàn)方式, 鎖, 鎖優(yōu)化, 線程創(chuàng)建方式, 線程池.
JVM包括堆內(nèi)存分配, 垃圾回收器的幾種類型, java內(nèi)存模型 ,JVM調(diào)優(yōu). 這塊感覺問的比較少, 可能是我答的不夠好, 所以沒問深入.
容器主要考察容器的接口, 問HashMap的比較多, HashMap如何解決hash沖突的, put操作的流程, 為什么會(huì)線程不安全, HashTable與currenthashmap 的不同,
2 : 數(shù)據(jù)庫, 主要在于數(shù)據(jù)庫中間件, 數(shù)據(jù)庫設(shè)計(jì)規(guī)范, 數(shù)據(jù)庫范式以及反范式的應(yīng)用, 數(shù)據(jù)庫優(yōu)化 ,索引
數(shù)據(jù)庫中間件主要要了解其中原理, 最好自己使用過.
設(shè)計(jì)規(guī)范主要是表結(jié)構(gòu), 字段命名, 冗余設(shè)計(jì), 分庫分表, 命名規(guī)范, 注釋之類的
數(shù)據(jù)庫優(yōu)化比較復(fù)雜, 有索引優(yōu)化, 索引的使用場(chǎng)景, 索引的失效場(chǎng)景, 索引創(chuàng)建的注意點(diǎn), 索引的類型, 如果數(shù)據(jù)結(jié)構(gòu)好的話會(huì)要你說B+樹的相關(guān)操作. 慢日志查詢分析 , 分庫分表.
索引有可能單獨(dú)拿出來問, 里面內(nèi)容很多, 建議自己查詢相關(guān)資料進(jìn)行補(bǔ)充, 畢竟這塊還是蠻重要的.
3 : nosql ,這塊問redis的比較多, 所以可以重點(diǎn)看看, redis的結(jié)構(gòu)以及內(nèi)部實(shí)現(xiàn)方式, redis安全, 緩存淘汰策略, redis實(shí)現(xiàn)持久化的原理, 并發(fā)情況下redis的相關(guān)操作, 緩存可能出現(xiàn)的問題(緩存雪崩, 緩存并發(fā), 緩存雪崩) ,如何確保緩存一致性 (緩存更新的套路)
4 : 工作經(jīng)歷的項(xiàng)目, 特點(diǎn), 難點(diǎn), 技術(shù)亮點(diǎn). 如果你進(jìn)行重構(gòu), 你會(huì)怎么做, 為什么, 有什么好處.
上面四部分基本上是必問的, 其余可能問的有 : 服務(wù)器安全, 接口優(yōu)化, 項(xiàng)目管理, linux操作, 算法, Spring, 網(wǎng)絡(luò), JS , 消息中間件. 所以還是要注重平時(shí)積累. 尤其是基礎(chǔ)知識(shí)積累, 經(jīng)過多次查漏補(bǔ)缺, 彌補(bǔ)了自己很多不足, 所以覺得這次跳槽還是很有價(jià)值的.