周末,天氣放晴,玩的還挺開心,
過后,我像往常一樣坐在窗臺,看著電腦“發呆”,就不給大家分享技術干貨了,
給大家整理一份面試清單總結吧,都是一些基礎的題,
但是IT公司就喜歡考這些基礎的東西,所以為了能進大公司就~當復習期末考吧,
花了不少時間整理,在整理程序中也學到了很多東西,請大家認真對待每一題!

面試題模塊介紹:

一、Java 基礎
- JDK 和 JRE 有什么區別?
- == 和 equals 的區別是什么?
- 兩個物件的 hashCode()相同,則 equals()也一定為 true,對嗎?
- final 在 java 中有什么作用?
- java 中的 Math.round(-1.5) 等于多少?
- String 屬于基礎的資料型別嗎?
- java 中操作字串都有哪些類?它們之間有什么區別?
- String str="i"與 String str=new String("i")一樣嗎?
- 如何將字串反轉?
- String 類的常用方法都有那些?
- 抽象類必須要有抽象方法嗎?
- 普通類和抽象類有哪些區別?
- 抽象類能使用 final 修飾嗎?
- 介面和抽象類有什么區別?
- java 中 IO 流分為幾種?
- BIO、NIO、AIO 有什么區別?
- Files的常用方法都有哪些?
二、容器
- java 容器都有哪些?
- Collection 和 Collections 有什么區別?
- List、Set、Map 之間的區別是什么?
- HashMap 和 Hashtable 有什么區別?
- 如何決定使用 HashMap 還是 TreeMap?
- 說一下 HashMap 的實作原理?
- 說一下 HashSet 的實作原理?
- ArrayList 和 LinkedList 的區別是什么?
- 如何實作陣列和 List 之間的轉換?
- ArrayList 和 Vector 的區別是什么?
- Array 和 ArrayList 有何區別?
- 在 Queue 中 poll()和 remove()有什么區別?
- 哪些集合類是執行緒安全的?
- 迭代器 Iterator 是什么?
- Iterator 怎么使用?有什么特點?
- Iterator 和 ListIterator 有什么區別?
- 怎么確保一個集合不能被修改?
三、多執行緒
- 并行和并發有什么區別?
- 執行緒和行程的區別?
- 守護執行緒是什么?
- 創建執行緒有哪幾種方式?
- 說一下 runnable 和 callable 有什么區別?
- 執行緒有哪些狀態?
- sleep() 和 wait() 有什么區別?
- notify()和 notifyAll()有什么區別?
- 執行緒的 run()和 start()有什么區別?
- 創建執行緒池有哪幾種方式?
- 執行緒池都有哪些狀態?
- 執行緒池中 submit()和 execute()方法有什么區別?
- 在 java 程式中怎么保證多執行緒的運行安全?
- 多執行緒鎖的升級原理是什么?
- 什么是死鎖?
- 怎么防止死鎖?
- ThreadLocal 是什么?有哪些使用場景?
- 說一下 synchronized 底層實作原理?
- synchronized 和 volatile 的區別是什么?
- synchronized 和 Lock 有什么區別?
- synchronized 和 ReentrantLock 區別是什么?
- 說一下 atomic 的原理?
四、反射
- 什么是反射?
- 什么是 java 序列化?什么情況下需要序列化?
- 動態代理是什么?有哪些應用?
- 怎么實作動態代理?
五、物件拷貝
- 為什么要使用克隆?
- 如何實作物件克隆?
- 深拷貝和淺拷貝區別是什么?
六、Java Web
- jsp 和 servlet 有什么區別?
- jsp 有哪些內置物件?作用分別是什么?
- 說一下 jsp 的 4 種作用域?
- session 和 cookie 有什么區別?
- 說一下 session 的作業原理?
- 如果客戶端禁止 cookie 能實作 session 還能用嗎?
- spring mvc 和 struts 的區別是什么?
- 如何避免 sql 注入?
- 什么是 XSS 攻擊,如何避免?
- 什么是 CSRF 攻擊,如何避免?
七、例外
- hrow 和 throws 的區別?
- final、finally、finalize 有什么區別?
- try-catch-finally 中哪個部分可以省略?
- try-catch-finally 中,如果 catch 中 return 了,finally 還會執行嗎?
- 常見的例外類有哪些?
八、網路
- http 回應碼 301 和 302 代表的是什么?有什么區別?
- forward 和 redirect 的區別?
- 簡述 tcp 和 udp的區別?
- tcp 為什么要三次握手,兩次不行嗎?為什么?
- 說一下 tcp 粘包是怎么產生的?
- OSI 的七層模型都有哪些?
- get 和 post 請求有哪些區別?
- 如何實作跨域?
- 說一下 JSONP 實作原理?
九、設計模式
- 說一下你熟悉的設計模式?
- 簡單工廠和抽象工廠有什么區別?
十、Spring/Spring MVC
- 什么是spring?
- Spring的倆大核心概念
- Spring框架的設計目標,設計理念,和核心是什么
- Spring由哪些模塊組成?
- Spring 框架中都用到了哪些設計模式?
- 使用 Spring 有哪些方式?
- spring 支持幾種 bean 的作用域?
- spring 自動裝配 bean 有哪些方式?
- spring 事務實作方式有哪些?
- 什么是Spring MVC?簡單介紹下你對Spring MVC的理解?
- Spring MVC的主要組件?
- 什么是Spring MVC框架的控制器?
- MVC是什么?MVC設計模式的好處有哪些
- Spring MVC常用的注解有哪些?
- Spring MVC與Struts2區別
- Spring MVC怎么樣設定重定向和轉發的?
- Spring MVC的例外處理?
- 什么是Spring MVC框架的控制器?
- 說一下 spring mvc 運行流程?
- spring mvc 有哪些組件?
- @RequestMapping 的作用是什么
- @Autowired 的作用是什么?
十一、Spring Boot/Spring Cloud
- 什么是 spring boot?
- 為什么要用 spring boot?
- spring boot 核心組態檔是什么?
- spring boot 組態檔有哪幾種型別?它們有什么區別?
- spring boot 有哪些方式可以實作熱部署?
- jpa 和 hibernate 有什么區別?
- 什么是 spring cloud?
- spring cloud 斷路器的作用是什么?
- spring cloud 的核心組件有哪些?
十二、Hibernate
- 為什么要使用 hibernate?
- 什么是 ORM 框架?
- hibernate 中如何在控制臺查看列印的 sql 陳述句?
- hibernate 有幾種查詢方式?
- hibernate 物體類可以被定義為 final 嗎?
- 在 hibernate 中使用 Integer 和 int 做映射有什么區別?
- hibernate 是如何作業的?
- get()和 load()的區別?
- 說一下 hibernate 的快取機制?
- hibernate 物件有哪些狀態?
- 在 hibernate 中 getCurrentSession 和 openSession 的區別是什么?
- hibernate 物體類必須要有無參建構式嗎?為什么?
十三、Mybatis
- MyBatis是什么?
- Mybatis優缺點
- Hibernate 和 MyBatis 的區別
- 為什么說Mybatis是半自動ORM映射工具?它與全自動的區別在哪里?
- 傳統JDBC開發存在什么問題?
- JDBC編程有哪些不足之處,MyBatis是如何解決的?
- MyBatis和Hibernate的適用場景?
- MyBatis編程步驟是什么樣的?
- 請說說MyBatis的作業原理
- MyBatis的功能架構是怎樣的
- MyBatis的框架架構設計是怎么樣的
- 什么是DBMS
- Mybatis都有哪些Executor執行器?它們之間的區別是什么?
- Mybatis中如何指定使用哪一種Executor執行器?
- Mybatis是否支持延遲加載?如果支持,它的實作原理是什么?
- Mybatis如何執行批量操作
- 當物體類中的屬性名和表中的欄位名不一樣 ,怎么辦
- Mapper 撰寫有哪幾種方式?
- 什么是MyBatis的介面系結?有哪些實作方式?
- 使用MyBatis的mapper介面呼叫時有哪些要求?
- Mybatis是如何將sql執行結果封裝為目標物件并回傳的?都有哪些映射形式?
- 簡述Mybatis的Xml映射檔案和Mybatis內部資料結構之間的映射關系?
- Xml映射檔案中,除了常見的select|insert|updae|delete標簽之外,還有哪些標簽?
- Mybatis是否可以映射Enum列舉類?
- 簡述Mybatis的插件運行原理,以及如何撰寫一個插件,
- Mybatis的一級、二級快取
十四、RabbitMQ
- 什么是MQ
- MQ的優點
- 解耦、異步、削峰是什么?,
- 訊息佇列有什么缺點
- 你們公司生產環境用的是什么訊息中間件?
- Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么優缺點?
- MQ 有哪些常見問題?如何解決這些問題?
- 什么是RabbitMQ?
- rabbitmq 的使用場景
- RabbitMQ的作業模式
- 如何保證RabbitMQ訊息的順序性?
- 訊息如何分發?
- 訊息基于什么傳輸?
- 如何保證訊息不被重復消費?或者說,如何保證訊息消費時的冪等性?
- 如何確保訊息正確地發送至 RabbitMQ? 如何確保訊息接收方消費了訊息?
- 如何保證RabbitMQ訊息的可靠傳輸?
- 為什么不應該對所有的 message 都使用持久化機制?
- 如何保證高可用的?RabbitMQ 的集群
- 如何解決訊息佇列的延時以及過期失效問題?訊息佇列滿了以后該怎么處理?有幾百萬訊息持續積壓幾小時,怎么辦?
- 設計MQ思路?
十五、Kafka
- kafka 可以脫離 zookeeper 單獨使用嗎?為什么?
- kafka 有幾種資料保留的策略?
- kafka 同時設定了 7 天和 10G 清除資料,到第五天的時候訊息達到了 10G,這個時候 kafka 將如何處理?
- 什么情況會導致 kafka 運行變慢?
- 使用 kafka 集群需要注意什么?
十六、Zookeeper
- zookeeper 是什么?
- ZooKeeper 提供了什么?
- Zookeeper 怎么保證主從節點的狀態同步?
- zookeeper 是如何保證事務的順序一致性的?
- Zookeeper Watcher 機制 – 資料變更通知
- 集群中為什么要有主節點?
- 集群中有 3 臺服務器,其中一個節點宕機,這個時候 zookeeper 還可以使用嗎?
- 說一下 zookeeper 的通知機制?
- Watcher 特性總結
- 客戶端注冊 Watcher 實作
- 服務端處理 Watcher 實作
- Zookeeper 下 Server 作業狀態
- zookeeper 是如何保證事務的順序一致性的?
- 分布式集群中為什么會有 Master主節點?
- zookeeper 負載均衡和 nginx 負載均衡區別
- Zookeeper 有哪幾種幾種部署模式?
- 集群支持動態添加機器嗎?
- Zookeeper 對節點的 watch 監聽通知是永久的嗎?為什么不是永久的?
- Zookeeper 的 java 客戶端都有哪些?
- chubby 是什么,和 zookeeper 比你怎么看?
- Zookeeper 都有哪些功能?
- 說一下 Zookeeper 的通知機制?
- Zookeeper 和 Dubbo 的關系?
十七、MySql
- 為什么要使用資料庫?
- 什么是MySQL?
- MySql, Oracle,Sql Service的區別
- mysql有關權限的表都有哪幾個
- MySQL的binlog有有幾種錄入格式?分別有什么區別?
- 資料庫經常使用的函式?
- mysql有哪些資料型別?
- MySQL存盤引擎MyISAM與InnoDB區別
- MyISAM索引與InnoDB索引的區別?
- 什么是索引?索引有哪些優缺點?
- 怎么創建索引的,有什么好處,有哪些分類
- 索引有哪幾種型別?
- 索引的資料結構(b樹,hash)
- 索引演算法有哪些?
- 創建索引的三種方式
- 百萬級別或以上的資料如何洗掉
- B樹和B+樹的區別
- 事物的四大特性(ACID)介紹一下?
- 什么是事務的隔離級別?MySQL的默認隔離級別是什么?
- 從鎖的類別上分MySQL都有哪些鎖呢?
- MySQL中InnoDB引擎的行鎖是怎么實作的?
- 什么是存盤程序?有哪些優缺點?
- 什么是觸發器?觸發器的使用場景有哪些?
- SQL陳述句主要分為哪幾類
- 怎么優化SQL查詢陳述句嗎
- 如何定位及優化SQL陳述句的性能問題?創建的索引有沒有被使用到?或者說怎么才可以知道這條陳述句運行很慢的原因?
- SQL的生命周期?
- MySQL資料庫cpu飆升到500%的話他怎么處理?
- 備份計劃,mysqldump以及xtranbackup的實作原理
十八、Redis
- 什么是Redis?
- Redis有哪些優缺點?
- 使用redis有哪些好處?
- 為什么要用 Redis / 為什么要用快取
- 為什么要用 Redis 而不用 map/guava 做快取?
- Redis為什么這么快
- Redis有哪些資料型別
- Redis的應用場景
- Redis 的持久化機制是什么?各自的優缺點?
- 如何選擇合適的持久化方式
- Redis持久化資料和快取怎么做擴容?
- Redis的過期鍵的洗掉策略
- Redis key的過期時間和永久有效分別怎么設定?
- 我們知道通過expire來設定key 的過期時間,那么對過期的資料怎么處理呢?
- MySQL里有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料
- Redis主要消耗什么物理資源?
- Redis的記憶體用完了會發生什么?
- Redis如何做記憶體優化?
- Redis事務的概念
- Redis事務支持隔離性嗎
- redis 集群模式的作業原理能說一下么?
- 在集群模式下,redis 的 key 是如何尋址的?
- 分布式尋址都有哪些演算法?
- 了解一致性 hash 演算法嗎?
- Redis集群的主從復制模型是怎樣的?
- 生產環境中的 redis 是怎么部署的?
- Redis集群會有寫操作丟失嗎?為什么?
- Redis是單執行緒的,如何提高多核CPU的利用率?
- 你知道有哪些Redis磁區實作方案?
- 如何解決 Redis 的并發競爭 Key 問題
- 分布式Redis是前期做還是后期規模上來了再做好?為什么?
- Redis和Redisson有什么關系?
十九、JVM
- 我們開發人員撰寫的Java代碼是怎么讓電腦認識的
- Jdk和Jre和JVM的區別
- 說一下 JVM由那些部分組成,運行流程是什么?
- 說一下 JVM 運行時資料區
- 詳細的介紹下程式計數器?(重點理解)
- 詳細介紹下Java虛擬機堆疊?(重點理解
- 你能給我詳細的介紹Java堆嗎?(重點理解)
- 能不能解釋一下本地方法堆疊?
- 能不能解釋一下方法區(重點理解)
- 什么是JVM位元組碼執行引擎
- 你聽過直接記憶體嗎?
- 知道垃圾收集系統嗎?
- 堆疊的區別是什么?
- 深拷貝和淺拷貝
- Java會存在記憶體泄漏嗎?請說明為什么?
- JVM 中都有哪些參考型別?
- 怎么判斷物件是否可以被回收?
- 物件什么時候可以被垃圾器回收
- JVM 垃圾回收演算法有哪些?
- JVM中的永久代中會發生垃圾回收嗎
- 說一下 JVM 有哪些垃圾回收器?
- 說一下 JVM 調優的工具?
俗話說,好學者臨池學書,不過網路時代,對于大多數的我們來說,我倒是覺得學習意識的覺醒很重要,這是開始學習的轉折點,比如看到對自己方向發展有用的資訊,先收藏一波是一波,比如如果你覺得我這篇文章ok,先點贊收藏一波,這樣,等真的沉下心來學習,不至于被找資料分散了心神,慢慢來,先從點贊收藏做起,加油吧!
好啦,由于文章篇幅限制,面試題答案詳解我就不在這里展示出來了,如果你需要這份完整版的面試題答案詳解資料,點擊這里資料領取:戳這里,戳這里,暗號:CSDN
另外,給大家安排了一波學習面試資料:




以上就是本文的全部內容,希望對大家的面試有所幫助,祝大家早日升職加薪迎娶白富美走上人生巔峰!
資料領取:戳這里,戳這里,暗號:CSDN
喜歡文章請點個關注,三連~~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/171581.html
標籤:其他
上一篇:十年電商大廠面試官總結100道大廠高頻面試題:Dubbo,ElasticSearch,JVM,多執行緒/高并發,訊息中間件
