專題5:Java序列化
-
1、什么是java序列化,如何實現java序列化?
-
2、保存(持久化)對象及其狀態到內存或者磁盤
-
3、序列化對象以字節數組保持-靜態成員不保存
-
4、序列化用戶遠程對象傳輸
-
5、Serializable 實現序列化
-
6、writeObject 和 readObject 自定義序列化策略
-
7、序列化 ID
-
8、序列化并不保存靜態變量
-
9、Transient 關鍵字阻止該變量被序列化到文件中
-
10、序列化(深 clone 一中實現)
專題6:Java注解
-
1、4種標準元注解是哪四種?
-
2、注解是什么?
專題7:多線程&并發
-
1、Java中實現多線程有幾種方法
-
2、繼承 Thread 類
-
3、實現 Runnable 接口。
-
4、ExecutorService、 Callable、 Future 有返回值線程
-
5、基于線程池的方式
-
6、4 種線程池
-
7、如何停止一個正在運行的線程
-
8、notify()和notifyAll()有什么區別?
-
9、sleep()和wait() 有什么區別?
-
10、volatile 是什么?可以保證有序性嗎?
-
11、Thread 類中的start() 和 run() 方法有什么區別?
-
12、為什么wait, notify 和 notifyAll這些方法不在thread類里面?
-
13、為什么wait和notify方法要在同步塊中調用?
-
14、Java中interrupted 和 isInterruptedd方法的區別?
-
15、Java中synchronized 和 ReentrantLock 有什么不同?
-
16、有三個線程T1,T2,T3,如何保證順序執行?
-
17、SynchronizedMap和ConcurrentHashMap有什么區別?
-
18、什么是線程安全
-
19、Thread類中的yield方法有什么作用?
-
20、Java線程池中submit() 和 execute()方法有什么區別?
-
21、說一說自己對于 synchronized 關鍵字的了解
-
22、說說自己是怎么使用 synchronized 關鍵字,在項目中用到了嗎synchronized關鍵字最主要的三種使用方式
-
23、什么是線程安全?Vector是一個線程安全類嗎?
-
24、volatile關鍵字的作用?
-
25、簡述一下你對線程池的理解
-
26、線程生命周期(狀態)
-
27、新建狀態(NEW)
-
28、就緒狀態(RUNNABLE)
-
29、運行狀態(RUNNING)
-
30、阻塞狀態(BLOCKED)
-
31、線程死亡(DEAD)
-
32、終止線程 4 種方式
-
33、start 與 run 區別
-
34、JAVA 后臺線程
-
35、什么是樂觀鎖
-
36、什么是悲觀鎖
-
37、什么是自旋鎖
-
38、Synchronized 同步鎖
-
39、ReentrantLock
-
40、Condition 類和 Object 類鎖方法區別區別
-
41、tryLock 和 lock 和 lockInterruptibly 的區別
-
42、Semaphore 信號量
-
43、Semaphore 與 ReentrantLock 區別
-
44、可重入鎖(遞歸鎖)
-
45、公平鎖與非公平鎖
-
46、ReadWriteLock 讀寫鎖
-
47、共享鎖和獨占鎖
-
48、重量級鎖(Mutex Lock)
-
49、輕量級鎖
-
50、偏向鎖
-
51、分段鎖
-
52、鎖優化
-
53、線程基本方法
-
54、線程等待(wait)
-
55、線程睡眠(sleep)
-
56、線程讓步(yield)
-
57、線程中斷(interrupt)
-
58、Join 等待其他線程終止
-
59、為什么要用 join()方法?
-
60、線程喚醒(notify)
-
61、線程其他方法
-
62、進程
-
63、上下文
-
64、寄存器
-
65、程序計數器
-
66、PCB-“切換楨”
-
67、上下文切換的活動
-
68、引起線程上下文切換的原因
-
69、同步鎖
-
70、死鎖
-
71、線程池原理
-
72、線程復
-
73、線程池的組成
-
74、拒絕策略
-
75、Java 線程池工作過程
-
76、JAVA 阻塞隊列原理
-
77、Java 中的阻塞隊列
-
78、ArrayBlockingQueue(公平、非公平)
-
79、LinkedBlockingQueue(兩個獨立鎖提高并發)
-
80、PriorityBlockingQueue(compareTo 排序實現優先)
-
81、DelayQueue(緩存失效、定時任務 )
-
82、SynchronousQueue(不存儲數據、可用于傳遞數據)
-
83、LinkedTransferQueue
-
84、LinkedBlockingDeque
-
85、在 java 中守護線程和本地線程區別
-
86、線程與進程的區別?
-
87、什么是多線程中的上下文切換?
-
88、死鎖與活鎖的區別,死鎖與饑餓的區別?
-
89、Java 中用到的線程調度算法是什么?
-
90、什么是線程組,為什么在 Java 中不推薦使用?
-
91、為什么使用 Executor 框架?
-
92、在 Java 中 Executor 和 Executors 的區別?
-
93、如何在 Windows 和 Linux 上查找哪個線程使用的 CPU 時間最長?
-
94、什么是原子操作?在 Java Concurrency API 中有哪些原子類(atomic classes)?
-
95、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?對比同步它有什么優勢?
-
96、什么是 Executors 框架?
-
97、什么是阻塞隊列?阻塞隊列的實現原理是什么?如何使用阻塞隊列來實現生產者-消費者模型?
-
98、什么是 Callable 和 Future?
-
99、什么是 FutureTask?使用 ExecutorService 啟動任務。
-
100、什么是并發容器的實現?
-
101、多線程同步和互斥有幾種實現方法,都是什么?
-
102、什么是競爭條件?你怎樣發現和解決競爭?
-
103、為什么我們調用 start()方法時會執行 run()方法,為什么我們不能直接調用 run()方法?
-
104、Java中,你怎樣喚醒一個阻塞的線程?
-
105、在 Java 中 CycliBarriar 和 CountdownLatch 有什么區別?
-
106、什么是不可變對象,它對寫并發應用有什么幫助?
-
107、Java 中用到的線程調度算法是什么?
-
108、什么是線程組,為什么在 Java 中不推薦使用?
專題8:JVM
-
1、java中會存在內存泄漏嗎,請簡單描述。
-
2、64 位 JVM 中,int 的長度是多數?
-
3、Serial 與 Parallel GC 之間的不同之處?
-
4、32 位和 64 位的 JVM,int 類型變量的長度是多數?
-
5、Java 中 WeakReference 與 SoftReference 的區別?
-
6、JVM 選項 -XX:+UseCompressedOops 有什么作用?為什么要使用?
-
7、怎樣通過 Java 程序來判斷 JVM 是 32 位 還是 64位?
-
8、32 位 JVM 和 64 位 JVM 的最大堆內存分別是多數?
-
9、JRE、JDK、JVM 及 JIT 之間有什么不同?
-
10、解釋 Java 堆空間及 GC?
-
11、JVM 內存區域
-
12、程序計數器(線程私有)
-
13、虛擬機棧(線程私有)
-
14、本地方法區(線程私有)
-
15、你能保證 GC 執行嗎?
-
16、怎么獲取 Java 程序使用的內存?堆使用的百分比?
-
17、Java 中堆和棧有什么區別?
-
18、描述一下 JVM 加載 class 文件的原理機制
-
19、GC 是什么?為什么要有 GC?
-
20、堆(Heap-線程共享) -運行時數據區
-
21、方法區/永久代(線程共享)
-
22、JVM 運行時內存
-
23、新生代
-
24、老年代
-
25、永久代
-
26、JAVA8 與元數據
-
27、引用計數法
-
28、可達性分析
-
29、標記清除算法( Mark-Sweep)
-
30、復制算法(copying)
-
31、標記整理算法(Mark-Compact)
-
32、分代收集算法
-
33、新生代與復制算法
-
34、老年代與標記復制算法
-
35、JAVA 強引用
-
36、JAVA軟引用
-
37、JAVA弱引用
-
38、JAVA虛引用
-
39、分代收集算法
-
40、在新生代-復制算法
-
41、在老年代-標記整理算法
-
42、分區收集算法
-
43、GC 垃圾收集器
-
44、Serial 垃圾收集器(單線程、 復制算法)
-
45、ParNew 垃圾收集器(Serial+多線程)
-
46、Parallel Scavenge 收集器(多線程復制算法、高效)
-
57、Serial Old 收集器(單線程標記整理算法 )
-
58、Parallel Old 收集器(多線程標記整理算法)
-
59、CMS 收集器(多線程標記清除算法)
-
60、G1 收集器
-
61、JVM 類加載機制
-
62、類加載器
-
63、雙親委派
-
64、OSGI( 動態模型系統)
-
65、動態改變構造
-
66、模塊化編程與熱插拔
-
67、JVM內存模型
-
68、棧
-
69、本地方法棧
-
70、程序計數器
-
71、堆
-
72、方法區
-
73、分代回收
-
74、堆和棧的區別
-
75、什么時候會觸發FullGC
-
76、什么是Java虛擬機?為什么Java被稱作是“平臺無關的編程語言”?
-
77、對象分配規則
-
78、描述一下JVM加載class文件的原理機制?
-
79、Java對象創建過程
-
80、簡述Java的對象結構
-
81、如何判斷對象可以被回收
-
82、JVM的永久代中會發生垃圾回收么
-
83、垃圾收集算法
-
84、調優命令有哪些?
-
85、調優工具
-
86、Minor GC與Full GC分別在什么時候發生?
-
87、你知道哪些JVM性能調優
專題9:Mysql
-
1、數據庫存儲引擎
-
2、InnoDB(B+樹)
-
2、TokuDB( Fractal Tree-節點帶數據)
-
3、MyIASM
-
4、Memory
-
5、數據庫引擎有哪些
-
6、InnoDB與MyISAM的區別
-
7、索引
-
8、常見索引原則有
-
9、數據庫的三范式是什么
-
10、第一范式(1st NF - 列都是不可再分)
-
11、第二范式(2nd NF- 每個表只描述一件事情)
-
12、第三范式(3rd NF- 不存在對非主鍵列的傳遞依賴)
-
13、數據庫是事務
-
14、SQL優化
-
15、簡單說一說drop、delete與truncate的區別
-
16、什么是視圖
-
17、什么是內聯接、左外聯接、右外聯接?
-
18、并發事務帶來哪些問題?
-
19、事務隔離級別有哪些?MySQL的默認隔離級別是?
-
20、大表如何優化?
-
21、水平分區
-
22、分庫分表之后,id 主鍵如何處理
-
23、存儲過程(特定功能的 SQL 語句集)
-
24、存儲過程優化思路
-
25、觸發器(一段能自動執行的程序)
-
26、數據庫并發策略
-
27、MySQL 中有哪幾種鎖?
-
28、MySQL 中有哪些不同的表格?
-
29、簡述在 MySQL 數據庫中 MyISAM 和 InnoDB 的區別
-
30、MySQL 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?
-
31、CHAR 和 VARCHAR 的區別?
-
32、主鍵和候選鍵有什么區別?
-
33、myisamchk 是用來做什么的?
-
34、MyISAM Static 和 MyISAM Dynamic 有什么區別?
-
35、如果一個表有一列定義為 TIMESTAMP,將發生什么?
-
36、你怎么看到為表格定義的所有索引?
-
37、LIKE 聲明中的%和_是什么意思?
-
38、列對比運算符是什么?
-
39、BLOB 和 TEXT 有什么區別?
-
40、MySQL_fetch_array 和 MySQL_fetch_object 的區別是什么?
-
41、MyISAM 表格將在哪里存儲,并且還提供其存儲格式?
-
42、MySQL 如何優化 DISTINCT?
-
43、如何顯示前 50 行?
-
44、可以使用多少列創建索引?
-
45、NOW()和 CURRENT_DATE()有什么區別?
-
46、什么是非標準字符串類型?
-
47、什么是通用 SQL 函數?
-
48、MySQL 支持事務嗎?
-
49、MySQL 里記錄貨幣用什么字段類型好
-
50、MySQL 有關權限的表都有哪幾個?
-
51、列的字符串類型可以是什么?
-
52、MySQL 數據庫作發布系統的存儲,一天五萬條以上的增量,預計運維三年,怎么優化?
-
53、鎖的優化策略
-
54、索引的底層實現原理和優化
-
55、什么情況下設置了索引但無法使用
-
56、實踐中如何優化 MySQL
-
57、優化數據庫的方法
-
58、簡單描述 MySQL 中,索引,主鍵,唯一索引,聯合索引的區別,對數據庫的性能有什么影響(從讀寫兩方面)
-
59、數據庫中的事務是什么?
-
60、SQL 注入漏洞產生的原因?如何防止?
-
61、為表中得字段選擇合適得數據類型
-
62、存儲時期
-
63、對于關系型數據庫而言,索引是相當重要的概念,請回答有關索引的幾個問題
-
64、解釋 MySQL 外連接、內連接與自連接的區別
-
65、Myql 中的事務回滾機制概述
-
66、SQL 語言包括哪幾部分?每部分都有哪些操作關鍵
-
67、完整性約束包括哪些?
-
68、什么是鎖?
-
69、什么叫視圖?游標是什么?
-
70、什么是存儲過程?用什么來調用?
-
71、如何通俗地理解三個范式?
-
72、什么是基本表?什么是視圖?
-
73、試述視圖的優點?
-
74、NULL 是什么意思
-
75、主鍵、外鍵和索引的區別?
-
76、你可以用什么來確保表格里的字段只接受特定范圍里的值?
-
77、說說對 SQL 語句優化有哪些方法?(選擇幾條)
-
78、什么是樂觀鎖
-
79、什么是悲觀鎖
-
80、什么是時間戳
-
81、什么是行級鎖
-
82、什么是表級鎖
-
83、什么是頁級鎖
最后
最后,強調幾點:
- 1. 一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉。因為一般情況下,面試官都是會根據你的簡歷來問的; 能有一個上得了臺面的項目也非常重要,這很可能是面試官會大量發問的地方,所以在面試之前好好回顧一下自己所做的項目;
- 2. 和面試官聊基礎知識比如設計模式的使用、多線程的使用等等,可以結合具體的項目場景或者是自己在平時是如何使用的;
- 3. 注意自己開源的Github項目,面試官可能會挖你的Github項目提問;
我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、喪失斗志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!
以上面試專題的答小編案整理成面試文檔了,文檔里有答案詳解,以及其他一些大廠面試題目。
如何獲取整理好的Java面試專題資料?
資料獲取方式:點擊這里免費下載
面試答案
最后
最后,強調幾點:
- 1. 一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉。因為一般情況下,面試官都是會根據你的簡歷來問的; 能有一個上得了臺面的項目也非常重要,這很可能是面試官會大量發問的地方,所以在面試之前好好回顧一下自己所做的項目;
- 2. 和面試官聊基礎知識比如設計模式的使用、多線程的使用等等,可以結合具體的項目場景或者是自己在平時是如何使用的;
- 3. 注意自己開源的Github項目,面試官可能會挖你的Github項目提問;
我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、喪失斗志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!
以上面試專題的答小編案整理成面試文檔了,文檔里有答案詳解,以及其他一些大廠面試題目。
如何獲取整理好的Java面試專題資料?
資料獲取方式:點擊這里免費下載
面試答案
[外鏈圖片轉存中…(img-27vd7j2u-1625046901091)]
[外鏈圖片轉存中…(img-I5yUXcBp-1625046901093)]