Java基礎(chǔ)
HashMap的源碼,實現(xiàn)原理,JDK8中對HashMap做了怎樣的優(yōu)化杨名。
HaspMap擴(kuò)容是怎樣擴(kuò)容的,為什么都是2的N次冪的大小猖毫。
HashMap台谍,HashTable,ConcurrentHashMap的區(qū)別吁断。
極高并發(fā)下HashTable和ConcurrentHashMap哪個性能更好趁蕊,為什么,如何實現(xiàn)的胯府。
HashMap在高并發(fā)下如果沒有處理線程安全會有怎樣的安全隱患介衔,具體表現(xiàn)是什么。
java中四種修飾符的限制范圍骂因。
Object類中的方法炎咖。
接口和抽象類的區(qū)別,注意JDK8的接口可以有實現(xiàn)寒波。
動態(tài)代理的兩種方式乘盼,以及區(qū)別。
Java序列化的方式俄烁。
傳值和傳引用的區(qū)別绸栅,Java是怎么樣的,有沒有傳值引用页屠。
一個ArrayList在循環(huán)過程中刪除粹胯,會不會出問題,為什么辰企。
@transactional注解在什么情況下會失效风纠,為什么。
數(shù)據(jù)結(jié)構(gòu)和算法
B+樹
快速排序牢贸,堆排序竹观,插入排序(其實八大排序算法都應(yīng)該了解
一致性Hash算法,一致性Hash算法的應(yīng)用
JVM
JVM的內(nèi)存結(jié)構(gòu)潜索。
JVM方法棧的工作過程臭增,方法棧和本地方法棧有什么區(qū)別。
JVM的棧中引用如何和堆中的對象產(chǎn)生關(guān)聯(lián)竹习。
可以了解一下逃逸分析技術(shù)誊抛。
GC的常見算法,CMS以及G1的垃圾回收過程整陌,CMS的各個階段哪兩個是Stop the world的芍锚,CMS會不會產(chǎn)生碎片昔园,G1的優(yōu)勢。
標(biāo)記清除和標(biāo)記整理算法的理解以及優(yōu)缺點并炮。
eden survivor區(qū)的比例默刚,為什么是這個比例,eden survivor的工作過程逃魄。
JVM如何判斷一個對象是否該被GC荤西,可以視為root的都有哪幾種類型。
強(qiáng)軟弱虛引用的區(qū)別以及GC對他們執(zhí)行怎樣的操作伍俘。
Java是否可以GC直接內(nèi)存邪锌。
Java類加載的過程。
雙親委派模型的過程以及優(yōu)勢癌瘾。
常用的JVM調(diào)優(yōu)參數(shù)觅丰。
dump文件的分析。
Java有沒有主動觸發(fā)GC的方式(沒有)妨退。
多線程
Java實現(xiàn)多線程有哪幾種方式妇萄。
Callable和Future的了解。
線程池的參數(shù)有哪些咬荷,在線程池創(chuàng)建一個線程的過程冠句。
volitile關(guān)鍵字的作用,原理幸乒。
synchronized關(guān)鍵字的用法懦底,優(yōu)缺點。
Lock接口有哪些實現(xiàn)類罕扎,使用場景是什么聚唐。
可重入鎖的用處及實現(xiàn)原理,寫時復(fù)制的過程腔召,讀寫鎖杆查,分段鎖(ConcurrentHashMap中的segment)。
悲觀鎖宴咧,樂觀鎖根灯,優(yōu)缺點径缅,CAS有什么缺陷掺栅,該如何解決。
ABC三個線程如何保證順序執(zhí)行纳猪。
線程的狀態(tài)都有哪些氧卧。
sleep和wait的區(qū)別。
notify和notifyall的區(qū)別氏堤。
ThreadLocal的了解沙绝,實現(xiàn)原理搏明。
數(shù)據(jù)庫相關(guān)
常見的數(shù)據(jù)庫優(yōu)化手段 索引的優(yōu)缺點,什么字段上建立索引 數(shù)據(jù)庫連接池闪檬。 durid的常用配置星著。
計算機(jī)網(wǎng)絡(luò)
TCP,UDP區(qū)別粗悯。 三次握手虚循,四次揮手,為什么要四次揮手样傍。 長連接和短連接横缔。 連接池適合長連接還是短連接。
設(shè)計模式
觀察者模式 代理模式 單例模式衫哥,有五種寫法茎刚,可以參考文章單例模式的五種實現(xiàn)方式 可以考Spring中使用了哪些設(shè)計模式
分布式相關(guān)
分布式事務(wù)的控制。 分布式鎖如何設(shè)計撤逢。 分布式session如何設(shè)計膛锭。 dubbo的組件有哪些,各有什么作用笛质。 zookeeper的負(fù)載均衡算法有哪些泉沾。 dubbo是如何利用接口就可以通信的。
緩存相關(guān)
redis和memcached的區(qū)別妇押。 redis支持哪些數(shù)據(jù)結(jié)構(gòu)跷究。 redis是單線程的么,所有的工作都是單線程么敲霍。 redis如何存儲一個String的俊马。 redis的部署方式,主從肩杈,集群柴我。 redis的哨兵模式,一個key值如何在redis集群中找到存儲在哪里扩然。 redis持久化策略艘儒。
框架相關(guān)
SpringMVC的Controller是如何將參數(shù)和前端傳來的數(shù)據(jù)一一對應(yīng)的。 Mybatis如何找到指定的Mapper的夫偶,如何完成查詢的界睁。 Quartz是如何完成定時任務(wù)的。 自定義注解的實現(xiàn)兵拢。 Spring使用了哪些設(shè)計模式翻斟。 Spring的IOC有什么優(yōu)勢。 Spring如何維護(hù)它擁有的bean说铃。 一些較新的東西 JDK8的新特性访惜,流的概念及優(yōu)勢嘹履,為什么有這種優(yōu)勢。 區(qū)塊鏈了解 如何設(shè)計雙11交易總額面板债热,要做到高并發(fā)高可用
一些小建議
可以去leetcode上刷題換換思路砾嫉。 八大排序算法一定要手敲一遍(快排,堆排尤其重要)窒篱。 了解一些新興的技術(shù)焰枢。 面試之后面試官都會問你有沒有什么問題,千萬不要沒問題舌剂,也別傻乎乎的問一些敏感問題济锄。 了解你要面試的公司的產(chǎn)品及競爭產(chǎn)品。