java基礎知識
java內存模型
- java運行時數據區(qū)域
hashMap
- 如何解決沖突
- 存儲方式
- 沖突達到一定數量改用紅黑樹存儲等
ConcurrentHashMap
- 段的概念
- 分段鎖機制(讀不加鎖,寫加鎖)
- 大概的原理,先定位到某個段,然后段里面的操作交給hashmap
try finally塊的處理
-try里面return某個(引用類型 值類型),finally塊對其進行操作,最后結果
synchromized相關
-為什同步塊對性能的影響大
- synchronized加在靜態(tài)方法上面,鎖是什么
- 不同線程
基本排序
- 選擇排序
數據結構
- stack 數組實現
- 兩個stack實現隊列
阻塞隊列
- 實現
- wait和notify實現
- condition條件變量方式
編程題
- 統(tǒng)計文本文件中出現頻率最高的20個單詞
ArrayList 和LinkedList
- 查找元素的時間復雜度
-分別適用于什么情況下
java多線程
- 狀態(tài)轉換
list和set的區(qū)別
spring中的注解
spring mvc中的注解
Cookie和Session的區(qū)別
如何獲取一個網站每天的訪問量
自己定義的類是如何實現hashcode()方法
關于集合添加元素
-equal hashcode
JVM
- Java內存分代模型,GC算法片择,JVM常見的啟動參數; CMS算法的過程
- java 分布式開發(fā)
框架
- spring aop的底層實驗原理。 aop與cglib,與asm的關系浊洞。
spriong ioc的生命周期狠裹,(init-method病蛉,intilizingbean接口方法afterPropertiesSet的先后順序)等调违。
Hibernate對一二級緩存的使用窟哺,Lazy-Load的理解;
數據庫相關
- mysql存儲引擎中索引的實現機制技肩;
- 數據庫事務的幾種粒度且轨;
- 行鎖,表鎖虚婿;樂觀鎖旋奢,悲觀鎖
- MySql的存儲引擎的不同
- 單個索引、聯合索引然痊、主鍵索引
- Mysql怎么分表至朗,以及分表后如果想按條件分頁查詢怎么辦(如果不是按分表字段來查詢的話,幾乎效率低下剧浸,無解)
- 分表之后想讓一個id多個表是自增的爽丹,效率實現
- MySql的主從實時備份同步的配置,以及原理(從庫讀主庫的binlog)辛蚊,讀寫分離
- SQL語句
- 索引的數據結構粤蝎,B+樹
- 事物的四個特性,以及各自的特點(原子袋马、隔離)等等初澎,項目怎么解決這些問題
網絡協議
- HTTP協議;
HTTPS協議虑凛,SSL協議及完整交互過程碑宴;
redis
- redis,memcache底層客戶端使用一致性Hash桑谍,看是否了解延柠;
- redis的事件驅動多路復用底層實現;引申到NIO編程锣披, 看對Netty贞间,或mina是否了解。
- 如果候選者同時用過memcache雹仿,redis增热,看下是否了解兩者在使用場景上的區(qū)別。以考察使用深度胧辽,以及是否有好奇精神峻仇。
string stringbuild stringbuffer的區(qū)別
- string類為什么是final
負載均衡的原理
https處理一個過程 對稱加密非對稱加密
java基礎
- String類為什么是final的。
2.HashMap的源碼邑商,實現原理摄咆,底層結構凡蚜。
3.反射中,Class.forName和classloader的區(qū)別
4.session和cookie的區(qū)別和聯系吭从,session的生命周期朝蜘,多個服務部署時session管理。
5.Java中的隊列都有哪些影锈,有什么區(qū)別。
6.Java的內存模型以及GC算法 7.Java7蝉绷、Java8的新特性
8.Java數組和鏈表兩種結構的操作效率鸭廷,在哪些情況下(從開頭開始,從結尾開始熔吗,從中間開始)辆床,哪些操作(插入,查找桅狠,刪除)的效率高
9.Java內存泄露的問題調查定位:jmap讼载,jstack的使用等等
框架
- 1.struts1和struts2的區(qū)別
2.struts2和springMVC的區(qū)別
3.spring框架中需要引用哪些jar包,以及這些jar包的用途
4.srpingMVC的原理
5.springMVC注解的意思
6.spring中beanFactory和ApplicationContext的聯系和區(qū)別
7.spring注入的幾種方式
8.spring如何實現事物管理的
9.springIOC和AOP的原理
10.hibernate中的1級和2級緩存的使用方式以及區(qū)別原理 11.spring中循環(huán)注入的方式
多線程
- .Java創(chuàng)建線程之后中跌,直接調用start()方法和run()的區(qū)別
2.常用的線程池模式以及不同線程池的使用場景
3.newFixedThreadPool此種線程池如果線程數達到最大值后會怎么辦咨堤,底層原理。
4.多線程之間通信的同步問題漩符,synchronized鎖的是對象一喘,衍伸出和synchronized相關很多的具體問題,例如同一個類不同方法都有synchronized鎖嗜暴,一個對象是否可以同時訪問凸克。或者一個類的static構造方法加上synchronized之后的鎖的影響闷沥。
5.了解可重入鎖的含義萎战,以及ReentrantLock 和synchronized的區(qū)別
6.同步的數據結構,例如concurrentHashMap的源碼理解以及內部實現原理舆逃,為什么他是同步的且效率高7.atomicinteger和volatile等線程安全操作的關鍵字的理解和使用
8.線程間通信蚂维,wait和notify
9.定時線程的使用
10.場景:在一個主線程中,要求有大量(很多很多)子線程執(zhí)行完之后路狮,主線程才執(zhí)行完成鸟雏。多種方式,考慮效率览祖。
網絡通信
- 1.http是無狀態(tài)通信孝鹊,http的請求方式有哪些,可以自己定義新的請求方式么展蒂。
2.socket通信又活,以及長連接苔咪,分包,連接異常斷開的處理柳骄。
3.socket通信模型的使用团赏,AIO和NIO。
4.socket框架netty的使用耐薯,以及NIO的實現原理舔清,為什么是異步非阻塞。
5.同步和異步曲初,阻塞和非阻塞体谒。
設計模式
- 1.單例模式:飽漢、餓漢臼婆。以及餓漢中的延遲加載 2.工廠模式抒痒、裝飾者模式、觀察者模式
網絡之數據鏈路
[虐涔樱客] { http://www.nowcoder.com/discuss/3571 }
java 面試題及答案
- [第一部分]{ http://blog.csdn.net/hsk256/article/details/49052293 }
- [第二部分]{ http://blog.csdn.net/hsk256/article/details/49104955 }
- [第三部分]{ http://blog.csdn.net/hsk256/article/details/49363271 }
- [網絡編程]{http://www.nowcoder.com/discuss/3814}
數據庫性能優(yōu)化
- [殴氏欤客]{http://www.nowcoder.com/discuss/3553 }