這裡一共是134道Java面試題,看看你能對幾道吧!

- Java 語言有哪些特點
- 面向對象和面向過程的差別
- 關于 JVM JDK 和 JRE 最詳細通俗的解答
- Oracle JDK 和 OpenJDK 的對比
-
Java 和 和 C++ 的差別
6.什麼是 Java 程式的主類 應用程式和小程式的主類有何不同
- Java 應用程式與小程式之間有那些差别
- 字元型常量和字元串常量的差別
- 構造器 Constructor 是否可被 override
- 重載和重寫的差別
- Java 面向對象程式設計三大特性: 封裝 繼承 多态
- String StringBuffer 和 StringBuilder 的差別是什麼 String 為什麼是不可變的
- 自動裝箱與拆箱
- 在一個靜态方法内調用一個非靜态成員為什麼是非法的
- 在 Java 中定義一個不做事且沒有參數的構造方法的作用
- import java 和 和 javax 有什麼差別
- 接口和抽象類的差別是什麼
- 成員變量與局部變量的差別有那些
- 建立一個對象用什麼運算符? 對象實體與對象引用有何不同?
- 一個類的構造方法的作用是什麼 若一個類沒有聲明構造方法, 該程式能正确執行嗎 ?
- 記憶體模型以及分區,需要詳細到每個區放什麼。
- .堆裡面的分區:Eden,survival (from+ to),老年代,各自的特點。
- 對象建立方法,對象的記憶體配置設定,對象的通路定位。
- GC 的兩種判定方法:
- SafePoint 是什麼
- GC 的三種收集方法:标記清除、标記整理、複制算法的原理與特點,分别用在什麼地方,如果讓你優化收集方法,有什麼思路?
- GC 收集器有哪些?CMS 收集器與 G1 收集器的特點。
- Minor GC 與 Full GC 分别在什麼時候發生?
- 幾種常用的記憶體調試工具:jmap、jstack、jconsole、jhat
-
類加載的幾個過程:
31.JVM 記憶體分哪幾個區,每個區的作用是什麼?
32.如和判斷一個對象是否存活?(或者 GC 對象的判定方法)
33.簡述 java 垃圾回收機制?
34.java 中垃圾收集的方法有哪些?
35.java 記憶體模型
36.java 類加載過程?
- 簡述 java 類加載機制?
-
類加載器雙親委派模型機制?
39.什麼是類加載器,類加載器有哪些?
40.簡述 java 記憶體配置設定與回收策率以及 Minor GC 和Major GC
41、什麼是 Redis?簡述它的優缺點?
42、Redis 與 memcached 相比有哪些優勢?
43、Redis 支援哪幾種資料類型?
44、Redis 主要消耗什麼實體資源?
45、Redis 有哪幾種資料淘汰政策?
46、Redis 官方為什麼不提供 Windows 版本?
47、一個字元串類型的值能存儲最大容量是多少?
48、為什麼 Redis 需要把所有資料放到記憶體中?
49、Redis 叢集方案應該怎麼做?都有哪些方案?
50、Redis 叢集方案什麼情況下會導緻整個叢集不可用?
51、MySQL 裡有 2000w 資料,redis 中隻存 20w 的資料,如何保證 redis 中的資料都是熱點資料?
52、Redis 有哪些适合的場景?
53、Redis 支援的 Java 用戶端都有哪些?官方推薦用哪個?
54、Redis 和 Redisson 有什麼關系?
55、Jedis 與 Redisson 對比有什麼優缺點?
56、說說 Redis 哈希槽的概念?
57、Redis 叢集的主從複制模型是怎樣的?
58、Redis 叢集會有寫操作丢失嗎?為什麼?
59、Redis 叢集如何選擇資料庫?
60、Redis 如何做記憶體優化?
71 、什麼是 Spring 架構?Spring 架構有哪些主要子產品?
72 、使用 Spring 架構能帶來哪些好處?
73 、什麼是控制反轉(IOC) ?什麼是依賴注入?
74 、請解釋下 Spring 架構中的 IoC ?
75 、BeanFactory 和 和 ApplicationContext 有什麼差別?
76 、Spring 有幾種配置方式?
77 、如何用基于 XML 配置的方式配置 Spring ?
78 、如何用基于 Java 配置的方式配置 Spring ?
79 、怎樣用注解的方式配置 Spring ?
80 、請解釋 Spring Bean 的生命周期?
81 、Spring Bean 的作用域之間有什麼差別?
82 、什麼是 Spring inner beans ?
83 、Spring 架構中的單例 Beans 是線程安全的麼?
84 、請舉例說明如何在 Spring 中注入一個 Java Collection ?
85 、如何向 Spring Bean 中注入一個 Java.util.Properties
86 、請解釋 Spring Bean 的自動裝配?
87 、請解釋自動裝配模式的差別?
88 、如何開啟基于注解的自動裝配?
89 、請舉例解釋@Required 注解?
90 、請舉例解釋@Autowired 注解?
91 、請舉例說明@Qualifier 注解?
92 、構造方法注入和設值注入有什麼差別?
93 、Spring 架構中有哪些不同類型的事件?
94 、FileSystemResource 和 和 ClassPathResource 有何差別?
95 、Spring 架構中都用到了哪些設計模式?
96.RabbitMQ 中的 broker 是指什麼?cluster 又是指什麼?
97.RabbitMQ 上的一個 queue 中存放的 message 是否有數量限制?
98.什麼是 ActiveMQ?
99.Kafka 判斷一個節點是否還活着有那兩個條件?
100、Kafka 消息是采用 Pull 模式,還是 Push 模式?
- 資料庫三範式是什麼?
- 有哪些資料庫優化方面的經驗?
- 請簡述常用的索引有哪些種類?
-
以及在 mysql 資料庫中索引的工作機制是什麼?
105.MySQL 的基礎操作指令
106.mysql 的複制原理以及流程。
107.mysql 支援的複制類型?
108.mysql 中 中 varchar 與 與 char 的差別以及 varchar(50) 中的 50 代表的涵義?
-
表中有大字段 X (例如:text 類型),且字段 X 不會經常更新,以讀為為主,将該字段拆成子表好處是什麼?
110.MySQL 中 中 InnoDB 引擎的行鎖是通過加在什麼上完成(或稱實作)的?
111.分布式系統怎麼做服務治理
112.對分布式事務的了解
113.如何實作負載均衡,有哪些算法可以實作?
114.分布式叢集下如何做到唯一序列号
- 什麼是程序
- 什麼是線程
- 線程和程序有什麼差別
- 多線程的幾種實作方式
- 多線程中忙循環是什麼
-
為什麼要用線程池?
121.在java中守護線程和本地線程差別?
122.Java中用到的線程排程算法是什麼?
123.為什麼使用Executor架構?
124.什麼是原子操作?在Java Concurrency API中有哪些原子類(atomic classes)?
125.Java Concurrency API中的Lock接口(Lock interface)是什麼?對比同步它有什麼優勢?
126.什麼是阻塞隊列?阻塞隊列的實作原理是什麼?如何使用阻塞隊列來實作生産者-消費者模型?
127.什麼是并發容器的實作?
128.多線程同步和互斥有幾種實作方法,都是什麼?
129.為什麼我們調用start()方法時會執行run()方法,為什麼我們不能直接調用run()方法?
130.什麼是不可變對象,它對寫并發應用有什麼幫助?
131.Java中ConcurrentHashMap的并發度是什麼?
132.JVM中哪個參數是用來控制線程的棧堆棧小的?
133.你如何在Java中擷取線程堆棧?
134.volatile 變量和 atomic 變量有什麼不同?
最後
歡迎大家一起交流,喜歡文章記得點個贊喲,感謝支援!