所有的初級或中級程序員遇到的面試題不會出這個框架,當然,許多問題是我抄來的,也有自己面試中遇到的。
一、java基礎
1、基礎
(1)
(2)異常種類。
2、集合
ArrayList刪除的原理或過程
https://www.cnblogs.com/huangjinyong/p/9455163.html
HashMap遍歷刪除
https://zhidao.baidu.com/question/442077920.html
3、IO和網絡
- BIO、NIO、AIO的概念
- 什麼是長連接和短連接
- Http1.0和2.0相比有什麼區別,可參考《Http 2.0》
- Https的基本概念
- 三次握手和四次揮手、爲什麼揮手需要四次
- 從遊覽器中輸入URL到頁面加載的發生了什麼?可參考《從輸入URL到頁面加載發生了什麼》
4、線程和進程
(1)
- 說說線程安全問題,什麼是線程安全,如何保證線程安全
- 重入鎖的概念,重入鎖爲什麼可以防止死鎖
- 產生死鎖的四個條件(互斥、請求與保持、不剝奪、循環等待)
- 如何檢查死鎖(通過jConsole檢查死鎖)
- volatile 實現原理(禁止指令重排、刷新內存)
- synchronized 實現原理(對象監視器)
- synchronized 與 lock 的區別
- AQS同步隊列
- CAS無鎖的概念、樂觀鎖和悲觀鎖
- 常見的原子操作類
- 什麼是ABA問題,出現ABA問題JDK是如何解決的
- 樂觀鎖的業務場景及實現方式
- Java 8並法包下常見的併發類
- 偏向鎖、輕量級鎖、重量級鎖、自旋鎖的概念
- 可參考:《Java多線程編程核心技術》
(2)
1、ThreadLocal用過麼,原理是什麼,用的時候要注意什麼
2、Synchronized和Lock的區別
3、synchronized 的原理,什麼是自旋鎖,偏向鎖,輕量級鎖,什麼叫可重入鎖,什麼叫公平鎖和非公平鎖
4、concurrenthashmap具體實現及其原理,jdk8下的改版
5、用過哪些原子類,他們的參數以及原理是什麼
6、cas是什麼,他會產生什麼問題(ABA問題的解決,如加入修改次數、版本號)
7、如果讓你實現一個併發安全的鏈表,你會怎麼做
8、簡述ConcurrentLinkedQueue和LinkedBlockingQueue的用處和不同之處
9、簡述AQS的實現原理
10、countdowlatch和cyclicbarrier的用法,以及相互之間的差別?
11、concurrent包中使用過哪些類?分別說說使用在什麼場景?爲什麼要使用?
12、LockSupport工具
13、Condition接口及其實現原理
14、Fork/Join框架的理解
15、jdk8的parallelStream的理解
16、分段鎖的原理,鎖力度減小的思考
(3)
5 JVM
類加載的順序
GC
二、框架
spring
1 springIOC和AOP
2 spring是如何管理事務的
springMVC
1 springMVC原理
mybatis
1 resultType和resultmap區別
2spring和mybatis集成後緩存會怎樣?
springBoot
springCloud
Hibernate
三、web
JS
常用的協議有哪些
四、數據庫
索引
oracle分頁和mysql分頁
事務級別
五、linux
linux常用命令
ls
find
cat
mkdir
vi wq
cd
ps -ef | grep 8080