JavaShuo
欄目
標籤
Java 常見面試題整理
時間 2019-11-07
標籤
java
常見
面試
整理
欄目
Java
简体版
原文
原文鏈接
操做系統
說一下線程和進程,它們的區別
同步和異步的區別
阻塞和非阻塞的區別
操做系統中死鎖的四個必要條件
mmap和普通文件讀寫的區別,mmap的注意點
CPU密集型和IO密集型的區別
Linux
linux 用過的命令
kill 用法,某個進程殺不掉的緣由(進入內核態,忽略 kill 信號)
系統管理命令(如查看內存- 網絡狀況)
管道的使用
grep 的使用,必定要掌握,每次都會問在文件中查找
shell 腳本
find 命令
awk 使用
講一下linux的Swap分區
硬連接和軟鏈接區別
講一下epoll的基本原理,優勢
講一下內核態與用戶態,爲何要有用戶態和內核態,如何切換
講一下五種IO模型
計算機網絡
網絡爲何要分層
爲何有IP地址還須要MAC地址
IP 地址子網劃分
DNS 解析過程
URI和URL區別
說一下 TCP 和 UDP 的區別,優缺點
TCP如何保證可靠傳輸?怎麼作到不丟,不重,不漏(三次握手、滑動窗口、流量控制、擁塞控制)
TCP三次握手、TCP四次揮手
TCP粘包和拆包產生的緣由?解決策略?
談一下你對 HTTP 的理解?
http2 比1.1主要改進了什麼,有什麼好的辦法解決頭部阻塞嘛?
既然說 HTTP 是無狀態的,那服務器怎麼記住上次請求的用戶?
GET和POST區別
講一下你熟悉的HTTP狀態碼,它們的含義是什麼?
講一下一次完整的HTTP請求過程
HTTPS和HTTP的區別,https是如何保證數據傳輸的安全?
Session 和 Cookie 區別?
設計模式
說一下你熟悉的設計模式?
簡單工廠和抽象工廠有什麼區別?
什麼是單例模式?在什麼狀況下須要使用單例模式?
Java基礎系列
容器
Collection 和 Collections 有什麼區別?
List、Set、Map 之間的區別是什麼?
ArrayList初始化默認長度、擴容、拷貝、增長和刪除時間複雜度和空間複雜度
ArrayList 是一個線程安全的集合類嗎?
ArrayList 和 LinkedList 的區別是什麼?
如何實現數組和 List 之間的轉換?
ArrayList 和 Vector 的區別是什麼?
迭代器 Iterator 是什麼?怎麼使用?有什麼特色?
在 Queue 中 poll()和 remove()有什麼區別?
說一下 HashMap 的底層數據結構?
HashMap 和 Hashtable 有什麼區別?
如何決定使用 HashMap 仍是 TreeMap?
HashMap 存儲元素時 key 徹底同樣該怎麼處理?
HashMap 的默認長度是多少?如何擴容的?
Hash 會有什麼問題 ?怎麼避免或者減小哈希碰撞 ?
JDK 1.8 的 HashMap 有什麼變化?爲何 JDK 1.7 是頭插法,JDK 1.8 是尾插法?
ConcurrentHashMap 和 HashMap 的區別?爲何 ConcurrentHashMap 會線程安全?
ConcurrentHashMap 雖然是線程安全的,但它也存在什麼問題?
瞭解 TreeMap 嗎?TreeMap 最大的特色是什麼?爲何已經有了 HashMap 了還要有 TreeMap 類?
說一下 Fail-Fast 機制,結合源碼說一下
哪些集合類是線程安全的?
怎麼確保一個集合不能被修改?
判斷一個集合類是否爲線程安全的機制是什麼?
多線程
線程有哪些狀態?
並行和併發有什麼區別?
線程和進程的區別?
守護線程是什麼?
建立線程有哪幾種方式?
說一下 runnable 和 callable 有什麼區別?
sleep() 和 wait() 有什麼區別?
notify()和 notifyAll()有什麼區別?
爲何線程通訊的方法wait(), notify()和notifyAll()被定義在Object類裏?
線程的 run()和 start()有什麼區別?
什麼是線程安全?在 java 程序中怎麼保證多線程的運行安全?
鎖的升級原理是什麼?
對象鎖和靜態鎖之間的區別
什麼是死鎖?怎麼防止死鎖?
ThreadLocal 是什麼?有哪些使用場景?
說一下 synchronized 底層實現原理?
synchronized 和 volatile 的區別是什麼?
synchronized 和 Lock 有什麼區別?
synchronized 和 ReentrantLock 區別是什麼?
說一下 atomic 的原理?
CAS是什麼?缺點
說一下 AQS的原理?
如何中止一個線程?
final域的內存語義
線程池
線程池的實現原理,爲何要用線程池
線程池中Executor、ExecuteService、Executors 的區別
線程池都有哪些狀態?
線程池中 submit()和 execute()方法有什麼區別?
線程池都有哪幾種工做隊列?
怎麼理解無界隊列和有界隊列?
ThreadPoolExecutor執行的策略
說說幾種常見的線程池及使用場景?特色?爲何不推薦經過Executors直接建立線程池
四種拒絕策略
線程池ThreadPoolExecutor參數如何設置
單機上一個線程池正在處理服務,若是突然斷電了怎麼辦(正在處理和阻塞隊列裏的請求怎麼處理)?
反射
什麼是反射?
什麼是 Java 序列化?什麼狀況下須要序列化?
動態代理是什麼?有哪些應用?
怎麼實現動態代理?
對象拷貝
爲何要使用克隆?
如何實現對象克隆?
深拷貝和淺拷貝區別是什麼?
異常
Java 異常的體系結構
throw 和 throws 的區別?
final、finally、finalize 有什麼區別?
try-catch-finally 中哪一個部分能夠省略?
try-catch-finally 中,若是 catch 中 return 了,finally 還會執行嗎?
常見的異常類有哪些?
JVM
說一下對jvm的理解,jvm的組成部分,各個部分的存儲內容以及常見的jvm的問題排查步驟。
對JVM熟不熟悉?簡單說說類加載過程,裏面執行的那些操做?
JVM方法區存儲內容 是否會動態擴展 是否會出現內存溢出 出現的緣由有哪些。
介紹介紹CMS。
介紹介紹G1。
爲何jdk8用metaspace數據結構用來替代perm?
簡單談談堆外內存以及你的理解和認識。
JVM的內存模型的理解,threadlocal使用場景及注意事項?
JVM老年代和新生代的比例?
jstack,jmap,jutil分別的意義?如何線上排查JVM的相關問題?
Java虛擬機中,數據類型能夠分爲哪幾類?
怎麼理解棧、堆?堆中存什麼?棧中存什麼?
爲何要把堆和棧區分出來呢?棧中不是也能夠存儲數據嗎?
在Java中,什麼是是棧的起始點,同是也是程序的起始點?
爲何不把基本類型放堆中呢?
Java中的參數傳遞時傳值呢?仍是傳引用?
Java中有沒有指針的概念?
Java中,棧的大小經過什麼參數來設置?
一個空Object對象的佔多大空間?
對象引用類型分爲哪幾類?
講一講垃圾回收算法。
如何解決內存碎片的問題?
如何解決同時存在的對象建立和對象回收問題?
講一講內存分代及生命週期。
什麼狀況下觸發垃圾回收?
如何選擇合適的垃圾收集算法?
JVM中最大堆大小有沒有限制?
堆大小經過什麼參數設置?
JVM有哪三種垃圾回收器?
吞吐量優先選擇什麼垃圾回收器?響應時間優先呢?
如何進行JVM調優?有哪些方法?
如何理解內存泄漏問題?有哪些狀況會致使內存泄露?如何解決?
MySQL
說一下 ACID 是什麼?
說一下四種隔離級別,默認的隔離級別是什麼,怎麼避免不可重複讀?
char 和 varchar 的區別是什麼?
float 和 double 的區別是什麼?
mysql 的內鏈接、左鏈接、右鏈接有什麼區別?
mysql 索引是怎麼實現的?
B+樹索引和哈希索引的區別
B樹和B+樹的區別
彙集索引和輔助索引
什麼狀況下應不建或少建索引,致使索引失效的一些狀況
key和index的區別
怎麼驗證 mysql 的索引是否知足需求?
說一下 mysql 經常使用的引擎?MyISAM和InnoDB的區別?如何選擇?
說一下 mysql 的行鎖和表鎖?
鎖的算法(Record Lock、Gap Lock、Next-Key Lock)
MySQL怎麼實現redo log和binlog的一致性
說一下樂觀鎖和悲觀鎖?
說一下MySQL分區怎麼實現,對業務層透明嗎?MySQL支持的分區類型有哪些?使用場景?分區與分表的區別?
mysql主從同步原理
說一下MVVC
mysql 問題排查都有哪些手段?
如何作 mysql 的性能優化?
Netty
Netty爲何比NIO快?
講一下Netty零拷貝原理,爲何會有內核空間?怎麼管理?
NIO必定比IO快嗎?什麼狀況下會比IO慢?
Spring
爲何要使用 spring?
講一下aop的實現原理?JDK動態代理和CGLIB代理的區別
講一下ioc的實現原理?
spring 有哪些主要模塊?
spring 經常使用的注入方式有哪些?
spring 中的 bean 是線程安全的嗎?
spring 支持幾種 bean 的做用域?
spring 自動裝配 bean 有哪些方式?
spring 事務實現方式有哪些?事務失效的幾種緣由
說一下 spring 的事務隔離?
說一下 spring mvc 運行流程?
spring mvc 有哪些組件?
@RequestMapping 的做用是什麼?
@Autowired 的做用是什麼?
Spring Boot
什麼是 Spring Boot?爲何要用 Spring Boot?和Spring有什麼區別?
Spring Boot 核心配置文件是什麼?
Spring Boot配置文件有哪幾種類型?它們有什麼區別?
Spring Boot 有哪些方式能夠實現熱部署?
微服務怎麼拆分
講一下DDD
SpringCloud
SpringCloud和Dubbo區別
Eureka實現原理
Eureka和ZooKeeper均可以提供服務註冊與發現的功能,請說說兩個的區別
Hystrix是什麼,熔斷器實現原理
Feign的優勢是什麼
MyBatis
mybatis的特性
mybatis的#號和$號有什麼區別
mybatis如何進行類型轉換
mybatis的xml有什麼標籤
mybatis底層如何加載mapper,以及SQL語句具體怎麼執行
mybatis 有哪些執行器(Executor)?
mybatis 有幾種分頁方式?
RowBounds 是一次性查詢所有結果嗎?爲何?
mybatis 邏輯分頁和物理分頁的區別是什麼?
mybatis 是否支持延遲加載?延遲加載的原理是什麼?
MyBatis 如何處理批量請求?
說一下 mybatis 的一級緩存和二級緩存?(高頻)
mybatis 分頁插件的實現原理是什麼?
mybatis 如何編寫一個自定義插件?
消息隊列
說說你使用過什麼消息中間件?
爲何要在系統裏引入消息中間件?
消息中間件技術選型爲何是RabbitMQ?技術選型的依據是什麼?
怎麼保證消息中間件的高可用性?避免消息中間件故障後引起系統總體故障?
RabbitMQ的高可用性怎麼實現。
怎麼保證投遞出去的消息只有一條,不會出現重複的數據?
消息重複是什麼形成的,從生產端和消費端兩個角度來考慮
如何保證消息的順序性?若是不須要保證消息順序,爲何不須要?
是否遇到過消息積壓的生產故障?若是沒遇到過,你考慮一下如何應對?
說說RabbitMQ的底層架構原理,邏輯架構、物理架構以及數據持久化機制?
大家RabbitMQ的最高峯QPS每秒是多少?線上如何部署的,部署了多少臺機器,機器的配置如何?
說說Kafka的底層架構原理,磁盤上數據如何存儲的,總體分佈式架構是如何實現的?
說說Kafka是如何保證數據的高容錯性的?零拷貝等技術是如何運用的?高吞吐量下如何優化生產者和消費者的性能?
說說你對Kafka源碼的理解?
RocketMQ的一個特色是對分佈式事務的支持,說說他在分佈式事務支持的底層原理?
RocketMQ的源碼看過麼,聊聊你對RocketMQ源碼的理解?
若是讓你來動手實現一個分佈式消息中間件,總體架構你會如何設計實現?
Redis
Redis 都有哪些數據類型?它們的內部數據結構是什麼?分別在哪些場景下使用比較合適?
Redis有人說是單線程和有人說是多線程,你怎麼看?Redis 爲何是單線程的?
Redis 和 Memcached 有什麼區別?爲何單線程的 Redis 比多線程的 Memcached 效率要高得多?
Redis 的線程模型是什麼?講一下多路I/O複用模型?
Redis主從複製是怎麼實現的
什麼是 Redis 的雪崩和穿透?Redis 崩潰以後會怎麼樣?系統該如何應對這種狀況?如何處理 Redis 的穿透?
Redis 的持久化有哪幾種方式?區別?持久化機制具體底層是如何實現的?
redis 支持的 java 客戶端都有哪些?jedis 和 redisson 有哪些區別?
如何保證緩存與數據庫的雙寫一致性?
Redis 的併發競爭問題是什麼?如何解決?瞭解 Redis 事務的 CAS 方案嗎?
Redis 集羣模式的工做原理?Redis 的 key 是如何尋址的?分佈式尋址都有哪些算法?瞭解一致性 hash 算法嗎?如何動態增長和刪除一個節點?
Redis 怎麼實現分佈式鎖?有什麼缺陷?
Redis 如何作內存優化?
Redis 設置過時時間的原理?
Redis 淘汰策略有哪些?
Redis 常見的性能問題有哪些?該如何解決?
Redis 和MySQL區別,MySQL也有存儲文檔格式的存儲引擎Memory,它們什麼區別?
Zookeeper
raft協議相比paxos的優劣
Nginx
講一下nginx負載均衡,優點,Apache和Nginx區別
cgi和fastcgi區別
Nginx架構、模塊關係、accept_mutex的實現以及多進程的負載均衡
nginx部署的時候出現502了嗎,500何時出現的
Nginx負載均衡致使用戶兩次調用服務不在一個IP上,怎麼保持鏈接
MongoDB
MongoDB和MySQL區別,MySQL也有存儲文檔格式的存儲引擎Archive,它們什麼區別?
Solr
Solr全量索引的時候發現數據有丟失,怎麼處理?
Solr地理位置搜索的原理是什麼?
倒排索引的優點?
相關文章
1.
常見Java面試整理
2.
Java常見面試題整理【1】
3.
Java 常見面試題整理
4.
Java基礎常見面試題整理
5.
常見C++筆試面試題整理
6.
Redis常見面試題整理
7.
Java面試----2018年MyBatis常見實用面試題整理
8.
java程序員面試常見面試題及答案整理
9.
面試常見問題整理
10.
Spring常見面試題整理(2020.07.17)
更多相關文章...
•
Scala 異常處理
-
Scala教程
•
C# 異常處理
-
C#教程
•
☆技術問答集錦(13)Java Instrument原理
•
Java Agent入門實戰(三)-JVM Attach原理與使用
相關標籤/搜索
Java面試題
面試試題
常見問題
Java面試題八
Java面試題四
Java面試題十
面試常考
常見
常見異常
面試題
快樂工作
Java
PHP教程
MySQL教程
NoSQL教程
面試
java
Java 8
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
以實例說明微服務拆分(以SpringCloud+Gradle)
2.
idea中通過Maven已經將依賴導入,在本地倉庫和external libraries中均有,運行的時候報沒有包的錯誤。
3.
Maven把jar包打到指定目錄下
4.
【SpringMvc】JSP+MyBatis 用戶登陸後更改導航欄信息
5.
在Maven本地倉庫安裝架包
6.
搭建springBoot+gradle+mysql框架
7.
PHP關於文件$_FILES一些問題、校驗和限制
8.
php 5.6連接mongodb擴展
9.
Vue使用命令行創建項目
10.
eclipse修改啓動圖片
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
常見Java面試整理
2.
Java常見面試題整理【1】
3.
Java 常見面試題整理
4.
Java基礎常見面試題整理
5.
常見C++筆試面試題整理
6.
Redis常見面試題整理
7.
Java面試----2018年MyBatis常見實用面試題整理
8.
java程序員面試常見面試題及答案整理
9.
面試常見問題整理
10.
Spring常見面試題整理(2020.07.17)
>>更多相關文章<<