目錄
- JDK
- Dubbo
- Zookeeper
- Strut2
- Spring系列
- Redis系列
- Mysql系列
- Java多線程
- 消息中間件
- 線程池
- 事物
- JVM
- 設計模式
- 其他
- 程序設計
- 基礎知識
- 編程題
- 面試技術外的問題
JDK
- jdk1.8版本後的新特性有哪些?
- 如何避免空指針異常?
Dubbo
- Dubbo是什麼?
- ==Dubbo 和 Spring Cloud 有什麼區別?==
- dubbo都支持什麼協議,推薦用哪種?
- Dubbo需要 Web 容器嗎?
- Dubbo內置了哪幾種服務容器?
- Dubbo裏面有哪幾種節點角色?
- Dubbo的服務註冊與發現的流程圖是怎樣的?
- Dubbo默認使用什麼註冊中心,還有別的選擇嗎?
- Dubbo有哪幾種配置方式?
- Dubbo 核心的配置有哪些?
- Dubbo啓動時如果依賴的服務不可用會怎樣?
- Dubbo推薦使用什麼序列化框架,你知道的還有哪些?
- Dubbo默認使用的是什麼通信框架,還有別的選擇嗎?
- Dubbo有哪幾種負載均衡策略,默認是哪種?
- Dubbo支持服務多協議嗎?
- Dubbo可以對結果進行緩存嗎?
- Dubbo服務之間的調用是阻塞的嗎?
- Dubbo支持分佈式事務嗎?
- Dubbo支持服務降級嗎?
- Dubbo的通信採用什麼?
- 服務提供者能實現失效踢出是什麼原理?
- Dubbo的管理控制檯能做什麼?
- 是否看過Dubbo的代碼底層原理?具體有哪些?
- Dobbo的調用流程是什麼?
- Dobbo支持動態添加服務嗎?
Zookeeper
- zookeeper是什麼?
- zookeeper都有哪些功能?
- zookeeper有哪幾種部署方式?
- zookeeper使用什麼協議?
- zookeeper的通知機制是怎樣的?
- zookeeper是如何實現分佈式鎖的?
- zookeeper的選舉機制及流程是什麼?
- zookeeper集羣是如何搭建的?
- zookeeper集羣最少要幾臺機器,集羣規則是怎樣的?
- zookeeper集羣中有幾種角色?
- zookeeper集羣支持動態添加機器嗎?
- zookeeper集羣中怎麼保證主從節點的狀態同步?
- zookeeper集羣中中爲什麼要有主節點?
- zookeeper集羣如果有3臺機器,掛掉一臺集羣還能工作嗎?掛掉兩臺呢?
- zookeeper的java客戶端都有哪些?
- zookeeper常用的命令有哪些?
Strut2
- Strtut2的優點和缺點是什麼?
- 它和spring有什麼區別?
Spring系列
- ==spring的IOC和AOP原理是什麼?==
- spring的啓動加載流程是怎樣的?
- ==springMVC的底層執行流程是怎樣的?重要的類有哪些?==
- springboot支持的日誌有哪些?默認的是什麼?怎麼配置
- springboot的數據源有哪些?怎麼配置?
- springcloud的常用開發框架有哪些?
- springcloud的熔斷是怎麼實現的?原理是什麼?
- ==springcloud的eureka和zoopeeker的區別是什麼?==
- springcloud的網管的主要做了哪些?
- springcloud裏bus的底層通信是用的什麼?
Redis系列
- ==Redis你們用的是單機還是集羣?集羣如何搭建?==
- ==Redis是什麼?都有哪些使用場景?==
- ==Redis的基本數據類型都有哪些?==
- Redis在開發中常用到哪些數據類型?
- Redis中hash的數據結構是什麼?
- Redis集羣數據不同步有可能是什麼原因?
- 請實現用Redis做登錄,錯誤次數爲最多五次,時間爲60秒
- Redis的哨兵機制原理是什麼?
- Redis的持久化方法有哪些?
- Redis的緩存穿透是什麼?怎麼解決?
- Redis怎麼實現分佈式鎖?
- Redis分佈式鎖有什麼缺陷?
- Redis如何做內存優化?
- Redis淘汰策略有哪些?
- Redis常見的性能問題有哪些?該如何解決?
- Redis支持的 java 客戶端都有哪些?
- Redis爲什麼是單線程的?
- Redis的管道是什麼?你們什麼時候用?怎麼使用的?
Mysql系列
- MySQL設計表的三大範式是什麼?
- MySQL的selete * 和selte 全字段的區別?
- MySQL的selete *除了是全字段掃描外爲什麼慢?
- MySQL如何做優化?
- MySQL的常用SQL語句優化有哪些?
- MySQL索引的作用?和它的優點缺點是什麼?
- MySQL有哪些索引(或者說索引類型有哪些)?
- MySQL的主鍵和索引有什麼區別?
- MySQL創建索引的原則是什麼?
- MySQL的索引在哪些情況下會失效?
- MySQL的索引原理是什麼?
- MySQL的存儲引擎有哪些?
- MySQL的最左原則是什麼?
- MySQL的樂觀鎖和悲觀鎖?
- 如果在a、b、c三個字段上建立複合索引,那麼有幾個索引?a、c、b、c兩個索引會生效嗎?
- MySQL的聚簇索引和非聚簇索引是什麼?
- MySQL的是傳遞性是什麼?如何來保證?
- 如何判斷SQL語句是否索引用上了?
- MySQL調優時用什麼方法或命令進行排查?命令的回顯結果集中哪些子彈是需要重點關注的?
- MySQL進行全表掃描是會觸發表鎖嗎?
- MySQL如何做分表?
- 已知現在有一個一千萬數據的日誌記錄表,每天會向裏面新增5000條記錄,如何優化?
- 如何做大數據量表的查詢和拆分?如果拆分怎麼拆?有哪些方式?
- 跨表查詢有哪些方式?你最多做過幾表聯查?
- 事物的隔離級別有哪些?
- 你們每天的數據量大概有多少?
- 你們最大的一張表多大?
- mysql中如何查看執行計劃?如何做sql優化?
Java多線程
- 線程安全的數組有哪些?
- 線程安全的集合有哪些?
- hashMap爲什麼不是線程安全的?底層原理是什麼?
- 請用代碼實現同時開啓一個線程打印1~52,開啓另一個線程打印A~Z,最終交替打印1A2B3C...這樣的數據
- Java裏實現線程的方式有哪些?各自的優缺點是什麼?
- 你如何理解同步、異步、阻塞、非阻塞?
- 你的程序中用到了哪些鎖?是如何實現的?
消息中間件
- ActiveMQ是什麼?
- ActiveMQ的應用場景有哪些?
- ActiveMQ有哪些優缺點?
- ActiveMQ在應用中可以保證分佈式事物嗎?是怎麼是實現的?有哪些優缺點?
- 常用的MQ的對比了解嗎?
- kufaka原理是什麼?爲什麼快?
線程池
- Java裏線程池常用的有哪些?
- 線程池在你的生產開發中有哪些應用場景?是如何使用的?
- 線程池的原理是什麼?
事物
- 數據庫事務的四大特性是什麼?
- 分佈式事物如何保證?
- springcloud的分佈式事物如何保證?
- 可以用Redis來實現分佈式事物嗎?
- 什麼是事物的傳導性?有哪些問題?
- 事務的CAP理論是什麼?
- 你們在生成中用到了哪種方式來保證事務一致性?
JVM
- JVM的內存模型是什麼?每個區的作用是什麼?
- 如何進行JVM調優?
- 如何對線程服務進行JVM排查和優化?
- JVM有幾種算法?
設計模式
- 常用的設計模式有哪些?
- 請寫出一個單例模式(要求是線程安全的)
- 單例模式的雙重檢查機制如何實現?(DCL)
其他
- Nginx可以做哪些事情?
- Nginx有幾種負載均衡?
- Nginx的輪詢裏一致性哈希算法的底層原理是什麼?
- Nginx如何避免緩存雪崩
- 服務器的CUP超負荷了,如何排查是哪個項目的?
- 如何根據CPU的負載情況定位代碼和線程所在?
- Java程序裏如果有無限for循環的代碼導致CPU負載超高,如何排查?
- 在爬蟲裏如何實現用戶登錄?
- 你是如何讓你的爬蟲項目避過一些網站的防爬機制的?
- solr的原理是什麼?是怎麼保證排序的?
- solr在你的項目中起到了什麼作用?
- MyBatis裏${}和#{}的區別是什麼?發生SQL注入的原理是什麼?
- MyBatis裏可以返回哪些對象?
- MyBatis在開發中什麼情況下回用到${}符號?
- 常用的linux命令,並闡述作用
- 當你請求了一個url地址後,它的後面都發生了什麼?
- maven的生命週期有哪些?
- 前端的標籤選擇器有哪些?
- 常見的頁面狀態有哪些?
程序設計
- 已知現在要在首頁上添加一個日打賞榜的功能,請說以下該如何實現?
- 已知你現在有一個定時任務,如何保證高可用?
- 如果爲了保證高可用,有多個定時任務,如何做到只有一個定時任務正常執行?
- 如果定時任務掛了,如何讓其他定時任務繼續執行?
- 如何讓你設計一個可以抗住大數據高併發的項目,你怎麼設計?
- 設計和實現一個支持掛接多個子系統的單點登錄系統。
- 要求掛接多個域名的站點思路
- 一次登錄,在多系統使用思路
- 防跨站攻擊思路
基礎知識
- ==和 equals 的區別?
- string、stringBuilder、SrtingBuffer的區別?
- Object作爲父類,它裏面有哪些方法?
- HashMap和HashTable的區別?
- map集合的底層數據結構是什麼?原理是什麼?
- HashMap最大可以存儲多少數據?
- ArrayList 和 LinkedList 的區別是什麼?
- ArrayList 和 Vector 的區別是什麼?
- Array 和 ArrayList 有何區別?
- 說一下 HashMap 的實現原理?
- 說一下 HashSet 的實現原理?
- 如何決定使用 HashMap 還是 TreeMap?
- List、Set、Map 之間的區別是什麼?
- java.util.concurrent包下使用過哪些?
- HashMap的工作原理是什麼?還有什麼處理哈希衝突的方法?
編程題
- 已知現有兩個常量數組,請將他們變爲一個有序的數組
- 如何用一次遍歷的方式,將數組內的數字(重複)進行有序排序
- 寫一個方法,輸入一個文件名和一個字符串,統計這個字符串在這個文件中出現的次數。
- 給定一個整數sum,從有n個有序元素的數組中尋找元素a,b 使得a+b的結果最接近sum,最快的平均時間複雜度是?
面試技術外的問題
- 你們公司是做什麼的?
- 你們現在用的框架是什麼?
- 你在你們公司主要負責做什麼?
- 你爲什麼離職?
- 你求職會優先考慮哪些?
- 你期望薪資是多少?
- 你目前的薪資多少?
- 你們的五險一金是怎麼交的?
- 你瞭解我們公司嗎?
- 你最快能什麼時間入職?
- 你還有哪些問的嗎?
- 你有哪些是你做的Java項目中你感覺最有自豪感的?因爲什麼?技術難度有哪些?
面試答案
轉發此文關注我私信回覆【面試資料】即可領取(轉發+關注後在私信哦)