Java面試題目:
- Java讀取一個文件, 有哪些方法, 考慮性能, 用哪一個類
- BIO, NIO, AIO區別
- Java 類加載機制
- 為什麼使用雙親委派模型
- NIO的組件, Selector
- 什麼是序列化, IO的序列化方式, 為什麼需要序列化(包括在網絡傳輸的情況下)
- Error和Exception區別
- RuntimeException和非RuntimeException區別
- 什麼叫線程安全, 保證線程安全的方法
- 加鎖的方式, synchronized作用在方法上和代碼塊區別
- synchronized(this)和synchronized(Xx.class)區別
Web方面:
- Spring AOP實現原理
- 一個頁面, 一個提交按鈕, 如何防止重複提交, 我說驗證碼, 還有 其它方式嗎?
- ajax實現跨域請求(前端或者後臺實現方法)
- cookie和session區別
- forward和redirect區別
數據庫
- 你建過索引嗎? 建索引的原則
- 索引的類型, 如主鍵索引
- 查看SQL執行計劃
- 有十萬條數據, 寫SQL語句查詢其中某字段較大值的幾條數據
- 子查詢與關聯查詢的區別
JVM
- 你用過的JVM命令有哪些
- 如果一個程序發生OOM, 該怎麼處理
- JVM內存模型
- JDK7與JDK8的JVM內存模型區別
- 回收算法
- 回收器
- 虛擬機client和server的區別
- 對象和引用之間一般用什麼連接?句柄池的作用是什麼。
網絡:
- HTTP1.0與HTTP1.1區別
- TCP與UDP區別
容器方面
- 介紹線程安全的list(copyonwritelist)
- 線程安全的map,具體是怎麼實現的,與Hashtable什麼區別。
- CAS
併發
- 知道的線程池(ThreadPoolExecutor屬於一類,forkjoin知道嗎)
- 線程池怎麼自己去實現?給你一個Runnable、一個容器怎麼實現。
- AQS中線程等待怎麼做的(線程掛起狀態怎麼做的)?
nio、bio
- 阻塞非阻塞的區別?
- 異步和同步的區別?異步是使用的內核級線程還是用戶態線程。
- AIO在Java中應用到了嗎?
中間件
- redis
- rabbitMq
- memcached等的使用場景和設計原理
redis:
- redis部署方式。
- redis怎麼加入節點
- redis持久化。
1.手撕字符串轉int
2.數據庫事務隔離級別
3.spring 事務
4.數據庫索引失效的場景
5.組合索引(A,B)若查詢B列是否用到了索引
6.如果A是string類型,而查詢的時候是1314151617 用到了索引嗎?能查到這條數據嗎?
7.數據庫怎麼實現樂觀鎖?
8.redis pipeline瞭解嗎?
9.秒殺場景?怎麼實現。redis怎麼限流,限流算法。
10.redis實現隊列、實現優先級隊列。
11.分佈式鎖。
PS: 覺得有點用的同學,歡迎給個贊轉發支持...
送你 58道《2018最新BAT高級java面試必考題》 含答案。
私信關鍵詞“BAT面試”即可獲取題目和答案鏈接哦!
閱讀更多 優知學院 的文章