Java面試208題

 

Java面試問題面試

本文分爲十九個模塊,分別是: Java 基礎、容器、多線程、反射、對象拷貝、Java Web 、異常、網絡、設計模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM。算法

一. Java 基礎模塊

  • 1.JDK 和 JRE 有什麼區別?
  • 2.== 和 equals 的區別是什麼?
  • 3.兩個對象的 hashCode() 相同,則 equals() 也必定爲 true,對嗎?
  • 4.final 在 Java 中有什麼做用?
  • 5.Java 中的 Math. round(-1. 5) 等於多少?
  • 6.String 屬於基礎的數據類型嗎?
  • 7.Java 中操做字符串都有哪些類?它們之間有什麼區別?
  • 8.String str="i"與 String str=new String(「i」)同樣嗎?
  • 9.如何將字符串反轉?
  • 10.String 類的經常使用方法都有那些?
  • 11.抽象類必需要有抽象方法嗎?
  • 12.普通類和抽象類有哪些區別?
  • 13.抽象類能使用 final 修飾嗎?
  • 14.接口和抽象類有什麼區別?
  • 15.Java 中 IO 流分爲幾種?
  • 16.BIO、NIO、AIO 有什麼區別?
  • 17.Files的經常使用方法都有哪些?

二. Java 容器模塊

  • 18.Java 容器都有哪些?
  • 19.Collection 和 Collections 有什麼區別?
  • 21. HashMap 和 Hashtable 有什麼區別?
  • 22.如何決定使用 HashMap 仍是 TreeMap?
  • 23.說一下 HashMap 的實現原理?
  • 24.說一下 HashSet 的實現原理?
  • 25.ArrayList 和 LinkedList 的區別是什麼?
  • 26.如何實現數組和 List 之間的轉換?
  • 27.ArrayList 和 Vector 的區別是什麼?
  • 28.Array 和 ArrayList 有何區別?
  • 29.在 Queue 中 poll()和 remove()有什麼區別?
  • 30.哪些集合類是線程安全的?
  • 31.迭代器 Iterator 是什麼?
  • 32.Iterator 怎麼使用?有什麼特色?
  • 33.Iterator 和 ListIterator 有什麼區別?
  • 34.怎麼確保一個集合不能被修改?

三. Java 多線程模塊

  • 35.並行和併發有什麼區別?
  • 36.線程和進程的區別?
  • 37.守護線程是什麼?
  • 38.多線程有幾種實現方式?
  • 39.說一下 Runnable和 Callable有什麼區別?
  • 40.線程有哪些狀態?
  • 41.sleep() 和 wait() 有什麼區別?
  • 42.notify()和 notifyAll()有什麼區別?
  • 43.線程的 run() 和 start() 有什麼區別?
  • 44.建立線程池有哪幾種方式?
  • 45.線程池都有哪些狀態?
  • 46.線程池中 submit() 和 execute() 方法有什麼區別?
  • 47.在 Java 程序中怎麼保證多線程的運行安全?
  • 48.多線程中 synchronized 鎖升級的原理是什麼?
  • 49.什麼是死鎖?
  • 50.怎麼防止死鎖?
  • 51.ThreadLocal 是什麼?有哪些使用場景?
  • 52.說一下 synchronized 底層實現原理?
  • 53.synchronized 和 volatile 的區別是什麼?
  • 54.synchronized 和 Lock 有什麼區別?
  • 55.synchronized 和 ReentrantLock 區別是什麼?
  • 56.說一下 atomic 的原理?

四. Java 反射模塊

  • 57.什麼是反射?
  • 58.什麼是 Java 序列化?什麼狀況下須要序列化?
  • 59.動態代理是什麼?有哪些應用?
  • 60.怎麼實現動態代理?

五. Java 對象拷貝模塊

  • 61.爲何要使用克隆?
  • 62.如何實現對象克隆?
  • 63.深拷貝和淺拷貝區別是什麼?

六. Java Web模塊

  • 64.JSP 和 servlet 有什麼區別?
  • 65.JSP 有哪些內置對象?做用分別是什麼?
  • 66.說一下 JSP 的 4 種做用域?
  • 67.session 和 cookie 有什麼區別?
  • 68.說一下 session 的工做原理?
  • 69.若是客戶端禁止 cookie 能實現 session 還能用嗎?
  • 70.spring mvc 和 struts 的區別是什麼?
  • 71.如何避免 SQL 注入?
  • 72.什麼是 XSS 攻擊,如何避免?
  • 73.什麼是 CSRF 攻擊,如何避免?

七. Java 異常模塊

  • 74.throw 和 throws 的區別?
  • 75.final、finally、finalize 有什麼區別?
  • 76.try-catch-finally 中哪一個部分能夠省略?
  • 78.常見的異常類有哪些?

八. 網絡模塊

  • 79.http 響應碼 301 和 302 表明的是什麼?有什麼區別?
  • 80.forward 和 redirect 的區別?
  • 81.簡述 tcp 和 udp的區別?
  • 82.tcp 爲何要三次握手,兩次不行嗎?爲何?
  • 83.說一下 tcp 粘包是怎麼產生的?
  • 84.OSI 的七層模型都有哪些?
  • 85.get 和 post 請求有哪些區別?
  • 86.如何實現跨域?
  • 87.說一下 JSONP 實現原理?

九. 設計模式模塊

  • 88.說一下你熟悉的設計模式?
  • 89.簡單工廠和抽象工廠有什麼區別?

十. Spring/Spring MVC模塊

  • 90.爲何要使用 spring?
  • 91.解釋一下什麼是 aop?
  • 92.解釋一下什麼是 ioc?
  • 93.spring 有哪些主要模塊?
  • 94.spring 經常使用的注入方式有哪些?
  • 95.spring 中的 bean 是線程安全的嗎?
  • 96.spring 支持幾種 bean 的做用域?
  • 97.spring 自動裝配 bean 有哪些方式?
  • 98.spring 事務實現方式有哪些?
  • 99.說一下 spring 的事務隔離?
  • 100.說一下 spring mvc 運行流程?
  • 101.spring mvc 有哪些組件?
  • 102.@RequestMapping 的做用是什麼?
  • 103.@Autowired 的做用是什麼?

十一. Spring Boot/Spring Cloud模塊

  • 104.什麼是 spring boot?
  • 105.爲何要用 spring boot?
  • 106.spring boot 核心配置文件是什麼?
  • 107.spring boot 配置文件有哪幾種類型?它們有什麼區別?
  • 108.spring boot 有哪些方式能夠實現熱部署?
  • 109.jpa 和 hibernate 有什麼區別?
  • 110.什麼是 spring cloud?
  • 111.spring cloud 斷路器的做用是什麼?
  • 112.spring cloud 的核心組件有哪些?

十二. Hibernate模塊

  • 113.爲何要使用 hibernate?
  • 114.什麼是 ORM 框架?
  • 115.hibernate 中如何在控制檯查看打印的 SQL 語句?
  • 116.hibernate 有幾種查詢方式?
  • 117.hibernate 實體類能夠被定義爲 final 嗎?
  • 118.在 hibernate 中使用 Integer 和 int 作映射有什麼區別?
  • 119.hibernate 是如何工做的?
  • 120.get()和 load()的區別?
  • 121.說一下 hibernate 的緩存機制?
  • 122.hibernate 對象有哪些狀態?
  • 123.在 hibernate 中 getCurrentSession 和 openSession 的區別是什麼?
  • 124.hibernate 實體類必需要有無參構造函數嗎?爲何?

十三. MyBatis模塊

  • 125.MyBatis 中 #{}和 ${}的區別是什麼?
  • 126.MyBatis 有幾種分頁方式?
  • 127.RowBounds 是一次性查詢所有結果嗎?爲何?
  • 128.MyBatis 邏輯分頁和物理分頁的區別是什麼?
  • 129.MyBatis 是否支持延遲加載?延遲加載的原理是什麼?
  • 130.說一下 MyBatis 的一級緩存和二級緩存?
  • 131.MyBatis 和 hibernate 的區別有哪些?
  • 132.MyBatis 有哪些執行器(Executor)?
  • 134.MyBatis 如何編寫一個自定義插件?

十四. RabbitMQ模塊

  • 135.RabbitMQ 的使用場景有哪些?
  • 136.RabbitMQ 有哪些重要的角色?
  • 137.RabbitMQ 有哪些重要的組件?
  • 138.RabbitMQ 中 vhost 的做用是什麼?
  • 139.RabbitMQ 的消息是怎麼發送的?
  • 140.RabbitMQ 怎麼保證消息的穩定性?
  • 141.RabbitMQ 怎麼避免消息丟失?
  • 142.要保證消息持久化成功的條件有哪些?
  • 143.RabbitMQ 持久化有什麼缺點?
  • 144.RabbitMQ 有幾種廣播類型?
  • 145.RabbitMQ 怎麼實現延遲消息隊列?
  • 146.RabbitMQ 集羣有什麼用?
  • 147.RabbitMQ 節點的類型有哪些?
  • 148.RabbitMQ 集羣搭建須要注意哪些問題?
  • 149.RabbitMQ 每一個節點是其餘節點的完整拷貝嗎?爲何?
  • 150.RabbitMQ 集羣中惟一一個磁盤節點崩潰了會發生什麼狀況?
  • 151.RabbitMQ 對集羣節點中止順序有要求嗎?

十五. Kafka

  • 152.kafka 能夠脫離 zookeeper 單獨使用嗎?爲何?
  • 153.kafka 有幾種數據保留的策略?
  • 154.kafka 同時設置了 7 天和 10G 清除數據,到第五天的時候消息達到了 10G,這個時候 kafka 將如何處理?
  • 155.什麼狀況會致使 kafka 運行變慢?
  • 156.使用 kafka 集羣須要注意什麼?

十六. Zookeeper模塊

  • 157.zookeeper 是什麼?
  • 158.zookeeper 都有哪些功能?
  • 159.zookeeper 有幾種部署模式?
  • 160.zookeeper 怎麼保證主從節點的狀態同步?
  • 161.集羣中爲何要有主節點?
  • 162.集羣中有 3 臺服務器,其中一個節點宕機,這個時候 zookeeper 還可使用嗎?
  • 163.說一下 zookeeper 的通知機制?

十七. MySQL模塊

  • 164.數據庫的三範式是什麼?
  • 165.一張自增表裏面總共有 7 條數據,刪除了最後 2 條數據,重啓 MySQL 數據庫,又插入了一條數據,此時 id 是幾?
  • 166.如何獲取當前數據庫版本?
  • 167.說一下 ACID 是什麼?
  • 168.char 和 varchar 的區別是什麼?
  • 169.float 和 double 的區別是什麼?
  • 170.MySQL 的內鏈接、左鏈接、右鏈接有什麼區別?
  • 171.MySQL 索引是怎麼實現的?
  • 172.怎麼驗證 MySQL 的索引是否知足需求?
  • 173.說一下數據庫的事務隔離?
  • 174.說一下 MySQL 經常使用的引擎?
  • 175.說一下 MySQL 的行鎖和表鎖?
  • 176.說一下樂觀鎖和悲觀鎖?
  • 177.MySQL 問題排查都有哪些手段?
  • 178.如何作 MySQL 的性能優化?

十八. Redis模塊

  • 179.Redis 是什麼?都有哪些使用場景?
  • 180.Redis 有哪些功能?
  • 181.Redis 和 memcache 有什麼區別?
  • 182.Redis 爲何是單線程的?
  • 183.什麼是緩存穿透?怎麼解決?
  • 184.Redis 支持的數據類型有哪些?
  • 185.Redis 支持的 Java 客戶端都有哪些?
  • 186.jedis 和 Redisson 有哪些區別?
  • 187.怎麼保證緩存和數據庫數據的一致性?
  • 188.Redis 持久化有幾種方式?
  • 190.Redis 分佈式鎖有什麼缺陷?
  • 191.Redis 如何作內存優化?
  • 192.Redis 淘汰策略有哪些?

十九. JVM模塊

  • 194.說一下 JVM 的主要組成部分?及其做用?
  • 195.說一下 JVM 運行時數據區?
  • 196.說一下堆棧的區別?
  • 197.隊列和棧是什麼?有什麼區別?
  • 198.什麼是雙親委派模型?
  • 199.說一下類裝載的執行過程?
  • 200.怎麼判斷對象是否能夠被回收?
  • 201.Java 中都有哪些引用類型?
  • 202.說一下 JVM 有哪些垃圾回收算法?
  • 203.說一下 JVM 有哪些垃圾回收器?
  • 204.詳細介紹一下 CMS 垃圾回收器?
  • 205.新生代垃圾回收器和老生代垃圾回收器都有哪些?有什麼區別?
  • 206.簡述分代垃圾回收器是怎麼工做的?
  • 207.說一下 JVM 調優的工具?
  • 208.經常使用的 JVM 調優的參數都有哪些?
相關文章
相關標籤/搜索