看看這些被你遺忘的java核心基礎面試題,你還記得多少?

前言:java

請各位不要一直刷框架、刷源碼大型項目了.......................面試

今年面試頻繁失敗的緣由在哪兒?敗就敗在那些年被你遺忘的基礎題上面了.redis

針對最多見、最常問的java面試題,我想這些你是必需要掌握的spring

不說精準,可是能夠參考下,看那些是你掌握了,看一眼就知道原理及解決方案.能夠查缺補漏看看.編程

Java集合22題(基礎)設計模式

  • ArrayList 和 Vector 的區別。數組

  • 說說 ArrayList,Vector, LinkedList 的存儲性能和特性。安全

  • 快速失敗 (fail-fast) 和安全失敗 (fail-safe) 的區別是什麼?springboot

  • hashmap 的數據結構。服務器

  • HashMap 的工做原理是什麼?

  • Hashmap 何時進行擴容呢?

  • List、Map、Set 三個接口,存取元素時,各有什麼特色?

  • Set 裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用 == 仍是 equals()? 它們有何區別?

  • 兩個對象值相同 (x.equals(y) == true),但卻可有不一樣的 hash code,這句話對不對?

  • heap 和 stack 有什麼區別。

  • Java 集合類框架的基本接口有哪些?

  • HashSet 和 TreeSet 有什麼區別?

  • HashSet 的底層實現是什麼?

  • LinkedHashMap 的實現原理?

  • 爲何集合類沒有實現 Cloneable 和 Serializable 接口?

  • 什麼是迭代器 (Iterator)?

  • Iterator 和 ListIterator 的區別是什麼?

  • 數組 (Array) 和列表 (ArrayList) 有什麼區別?何時應該使用 Array 而不是 ArrayList?

  • Java 集合類框架的最佳實踐有哪些?

  • Set 裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用 == 仍是 equals()?它們有何區別?

  • Comparable 和 Comparator 接口是幹什麼的?列出它們的區別

  • Collection 和 Collections 的區別。

JVM與調優21題(算是大廠必問題)

  • Java 類加載過程?

  • 描述一下 JVM 加載 Class 文件的原理機制?

  • Java 內存分配。

  • GC 是什麼? 爲何要有 GC?

  • 簡述 Java 垃圾回收機制

  • 如何判斷一個對象是否存活?(或者 GC 對象的斷定方法)

  • 垃圾回收的優勢和原理。並考慮 2 種回收機制

  • 垃圾回收器的基本原理是什麼?垃圾回收器能夠立刻回收內存嗎?有什麼辦法主動通知虛擬機進行垃圾回收?

  • Java 中會存在內存泄漏嗎,請簡單描述

  • 深拷貝和淺拷貝。

  • System.gc() 和 Runtime.gc() 會作什麼事情?

  • finalize() 方法何時被調用?析構函數 (finalization) 的目的是什麼?

  • 若是對象的引用被置爲 null,垃圾收集器是否會當即釋放對象佔用的內存?

  • 串行(serial)收集器和吞吐量(throughput)收集器的區別是什麼?

  • 在 Java 中,對象何時能夠被垃圾回收?

  • 簡述 Java 內存分配與回收策略以及 Minor GC 和 Major GC。

  • VM 的永久代中會發生垃圾回收麼?

  • Java 中垃圾收集的方法有哪些?

  • 什麼是類加載器,類加載器有哪些?

  • 類加載器雙親委派模型機制?

併發編程28題(併發多重要,就不要我多說了)

  • Synchronized 用過嗎,其原理是什麼?

  • 你剛纔提到獲取對象的鎖,這個「鎖」究竟是什麼?如何肯定對象的鎖?

  • 什麼是可重入性,爲何說 Synchronized 是可重入鎖?

  • VM 對 Java 的原生鎖作了哪些優化?48

  • 爲何說 Synchronized 是非公平鎖?49

  • 什麼是鎖消除和鎖粗化?49

  • 爲何說 Synchronized 是一個悲觀鎖?樂觀鎖的實現原理又是什麼?什麼是 CAS,它有什麼特性?

  • 樂觀鎖必定就是好的嗎?

  • 跟 Synchronized 相比,可重入鎖 ReentrantLock 其實現原理有什麼不一樣?

  • 那麼請談談 AQS 框架是怎麼回事兒?

  • 請儘量詳盡地對比下 Synchronized 和 ReentrantLock 的異同。

  • ReentrantLock 是如何實現可重入性的?

  • 除了 ReetrantLock,你還接觸過 JUC 中的哪些併發工具?

  • 請談談 ReadWriteLock 和 StampedLock。

  • 如何讓 Java 的線程彼此同步?你瞭解過哪些同步器?請分別介紹下。

  • CyclicBarrier 和 CountDownLatch 看起來很類似,請對比下呢?

  • Java 線程池相關問題

  • Java 中的線程池是如何實現的?

  • 建立線程池的幾個核心構造參數?

  • 線程池中的線程是怎麼建立的?是一開始就隨着線程池的啓動建立好的嗎?

  • 既然提到能夠經過配置不一樣參數建立出不一樣的線程池,那麼 Java 中默認實現好的線程池又有哪些呢?請比較它們的異同

  • 如何在 Java 線程池中提交線程?

  • 什麼是 Java 的內存模型,Java 中各個線程是怎麼彼此看到對方的變量的?

  • 請談談 volatile 有什麼特色,爲何它能保證變量對全部線程的可見性?

  • 既然 volatile 可以保證線程間的變量可見性,是否是就意味着基於 volatile 變量的運算就是併發安全的?

  • 請對比下 volatile 對比 Synchronized 的異同。

  • 請談談 ThreadLocal 是怎麼解決併發安全的?

  • 不少人都說要慎用 ThreadLocal,談談你的理解,使用 ThreadLocal 須要注意些什麼?

spring 25題(開源框架中的核心知識點)

  • 一、什麼是 Spring 框架?Spring 框架有哪些主要模塊?

  • 二、使用 Spring 框架能帶來哪些好處?

  • 三、什麼是控制反轉(IOC)?什麼是依賴注入?

  • 四、請解釋下 Spring 框架中的 IoC?

  • 五、BeanFactory 和 ApplicationContext 有什麼區別?

  • 六、Spring 有幾種配置方式?

  • 七、如何用基於 XML 配置的方式配置 Spring?

  • 八、如何用基於 Java 配置的方式配置 Spring?

  • 九、怎樣用註解的方式配置 Spring?

  • 十、請解釋 Spring Bean 的生命週期?

  • 十一、Spring Bean 的做用域之間有什麼區別?

  • 十二、什麼是 Spring inner beans?

  • 1三、Spring 框架中的單例 Beans 是線程安全的麼?

  • 1四、請舉例說明如何在 Spring 中注入一個 Java Collection?

  • 1五、如何向 Spring Bean 中注入一個 Java.util.Properties?

  • 1六、請解釋 Spring Bean 的自動裝配?

  • 1七、請解釋自動裝配模式的區別?

  • 1八、如何開啓基於註解的自動裝配?

  • 1九、請舉例解釋@Required 註解?

  • 20、請舉例解釋@Autowired 註解?

  • 2一、請舉例說明@Qualifier 註解?

  • 2二、構造方法注入和設值注入有什麼區別?

  • 2三、Spring 框架中有哪些不一樣類型的事件?

  • 2四、FileSystemResource 和 ClassPathResource 有何區別?

  • 2五、Spring 框架中都用到了哪些設計模式?

設計模式 10題

  • 1.請列舉出在 JDK 中幾個經常使用的設計模式?

  • 2.什麼是設計模式?你是否在你的代碼裏面使用過任何設計模式?

  • 3.Java 中什麼叫單例設計模式?請用 Java 寫出線程安全的單例模式

  • 4.在 Java 中,什麼叫觀察者設計模式(observer design pattern)?

  • 5.使用工廠模式最主要的好處是什麼?在哪裏使用?

  • 6.舉一個用 Java 實現的裝飾模式(decorator design pattern)?它是做用於對象層次仍是類 層次?

  • 7.在 Java 中,爲何不容許從靜態方法中訪問非靜態變量?

  • 8.設計一個 ATM 機,請說出你的設計思路?

  • 9.在 Java 中,何時用重載,何時用重寫?

  • 10.舉例說明什麼狀況下會更傾向於使用抽象類而不是接口

springboot 22題(中小型企業的佔比使用率較高,還有spring cloud)

  • 什麼是 Spring Boot?

  • Spring Boot 有哪些優勢?

  • 什麼是 JavaConfig?

  • 如何從新加載 Spring Boot 上的更改,而無需從新啓動服務器?

  • Spring Boot 中的監視器是什麼?

  • 如何在 Spring Boot 中禁用 Actuator 端點安全性?

  • 如何在自定義端口上運行 Spring Boot 應用程序?

  • 什麼是 YAML?

  • 如何實現 Spring Boot 應用程序的安全性?

  • 如何集成 Spring Boot 和 ActiveMQ?

  • 如何使用 Spring Boot 實現分頁和排序?

  • 什麼是 Swagger?你用 Spring Boot 實現了它嗎?

  • 什麼是 Spring Profiles?

  • 什麼是 Spring Batch?

  • 什麼是 FreeMarker 模板?

  • 如何使用 Spring Boot 實現異常處理?

  • 您使用了哪些 starter maven 依賴項?

  • 什麼是 CSRF 攻擊?

  • 什麼是 WebSockets?

  • 什麼是 AOP?

  • 什麼是 Apache Kafka?

  • 咱們如何監視全部 Spring Boot 微服務?

Netty10題

  • BIO、NIO和AIO的區別?

  • NIO的組成?

  • Netty的特色?

  • Netty的線程模型?

  • TCP 粘包/拆包的緣由及解決方法?

  • 瞭解哪幾種序列化協議?

  • 如何選擇序列化協議?

  • Netty的零拷貝實現?

  • Netty的高性能表如今哪些方面?

  • NIOEventLoopGroup源碼?

Redis 16題(優點以及使用場景都須要瞭解一下)

  • 什麼是redis?

  • Reids的特色

  • Redis支持的數據類型

  • Redis是單進程單線程的

  • 虛擬內存

  • Redis鎖

  • 讀寫分離模型

  • 數據分片模型

  • Redis的回收策略

  • 使用Redis有哪些好處?

  • redis相比memcached有哪些優點?4

  • redis常見性能問題和解決方案

  • MySQL裏有2000w數據,redis中只存20w的數據,如何保證redis中的數據都是熱點數據245

  • Memcache與Redis的區別都有哪些?

  • Redis 常見的性能問題都有哪些?如何解決?

  • Redis 最適合的場景

篇幅有限,這裏收集了各方面的,當前公司的,還有本身收集總結的,下面的圖片截取的有pdf,有若是有須要的自取.

各大公司面試題集合:
image
簡歷模板:
image

連接: https://pan.baidu.com/s/1DO6XGkbmak7KIt6Y7JQqyw
提取碼:fgj6
不知道會不會失效,若是失效點擊(778490892)或者掃描下面二維碼,進羣獲取,連接補發不過來,謝謝。

在這裏插入圖片描述

最後

歡迎你們評論區一塊兒交流,相互提高;整理資料不易,若是喜歡文章記得點個贊哈,感謝你們支持!!!

相關文章
相關標籤/搜索