Java面經整理分類

 

  最近,提了離職申請,但這段期間還幫着公司進行面試,所以總結一下最近面試的一些面試題吧,由於接下來就是別人面試wo吶...java

  本文章是階段性的更新,若有新穎、奇特的面經,還望同步一下...面試

 

  自我介紹算法

    因人而異...數據庫

 

  項目介紹設計模式

    1. 清楚項目是作什麼的?數組

    2. 項目定位(爲何作?亮點是什麼?知足那些功能,與競爭品牌優點是什麼)?緩存

    3. 項目功能(設計哪些功能點,模塊)?安全

    4. 項目總體架構、涉及的技術(爲何選擇該技術,技術選項)?數據結構

    5. 本身在項目中擔任的位置和做用(承擔責任與角色)?架構

       6. 項目使用技術(經過這個項目有哪些成長)?

    7. 項目的優缺點,及再設計,會如何考慮(判斷你的總體把控能力及思考)?

    8.。。。

     項目介紹模塊,面試官經過該模塊,關注的不是你作了什麼,而是你會什麼;不是你參與了什麼,而是你主導了什麼;不只是你的專業技能,還有你勇於創新,職業素養....項目介紹的重點:要麼是成績牛逼,要麼是經歷不同,要麼是你的體會和收穫。

    (來自於簡書:如何在項目中介紹本身的項目經驗?

 

  Java基礎

    1. collection集合有哪些類?

    2. List與Set的區別?

    3. Set是如何保證不重複的?

    4. HashMap的原理,擴容,線程是否安全?

    5. HashMap JDK1.7與JDK1.8之間的區別?有哪些優化,如何優化?

    6. 線程安全的Map有哪些?

    7. ConcurrentHashMap的實現原理,如何保證線程優化?JDK1.7與JDK1.8之間的如何再次優化的?

    8. 異常分類?處理機制是什麼?

    9. equals與==的區別?hashcode()與equals()之間的聯繫?Object.hashCode()方法與System.identityHashCode(object)之間的區別?

    10.ArrayList與LinkedList與Vector之間的區別?原理機制?

    11.有沒有保證順序的Map,實現原理是什麼?那有沒有線程安全的Map類?

    12.Java反射的 原理是什麼?反射建立對象的方式有哪些?

    13.簡單談一談深拷貝與淺拷貝之間的區別?

    14.JDK1.5中引入了泛型,它的存在是用來解決什麼問題的?

      答:泛型的本質是參數化類型,也就是說所操做的數據類型被指定爲一個參數,泛型的好處是在編譯的時候檢查類型安全,而且全部的強制轉換都是自動和隱式的,以提升代碼的重用率

    15.int與Inter關於加減等,數值>=128的相等關係判斷?

    16.Math類中的隨機數(這個當初碰見過,讓說出建立1-100之間隨機數的幾種方法)?

      17.(實戰)手動實現一個LRU / FIFO緩存算法?

    18.。。。

 

  Java併發 / 線程

    1.線程是什麼?與進程的區別?

    2.實現線程的方式有哪幾種?

    3.線程池建立線程的幾種方式?線程池有什麼優勢?

    4.什麼是線程安全?如何保證線程安全?

    5.Java內存模型是什麼?有什麼特色?(JMM)

    6.Java關鍵字 - volatile 的做用與區別?實現原理?

    7.Java鎖 - synchronized 與 reentrantLock 之間的區別?

    8.如何避免死鎖?(怎麼排查死鎖,這個與JVM有關)

    9.J.U.C包下面的併發類瞭解哪些?(CountDownLatch、CyclicBarrier、Semphore)

    10.CAS?CAS有什麼缺陷?如何解決?

    11.AQS?

    12.LockSupport工具?park?unpark?

    13.分段鎖的設計思想?其替代的方案是什麼?

    14.Fork/Join 框架的理解?

    15.ThreadLocal的原理,注意事項?

    16.什麼是守護線程?做用?Java中是否有默認的守護線程?

    17.什麼是條件鎖、讀寫鎖、自旋鎖、可重入鎖?

    18.鎖優化、鎖消除、鎖粗化、鎖升級、鎖...

    19.CopyOnWriteArrayList、CopyOnWriteArraySet實現原理?

    20.。。。

 

  Spring框架

    1. 簡單的介紹Spring框架,及其優勢?

    2. Spring MVC的請求處理執行的流程,內部

    2. Spring IOC容器的初始化流程?其如何從XML配置進行bean的裝配,以及其中bean對象的scope域?

    3. Spring AOP解決了什麼問題?如何實現?代理模式的實現方式(設計模式)?

    4. ASM 是什麼?解決了什麼問題?在Spring中體如今哪一個方面?

    5. Spring 事物的特性?隔離級別?傳播機制?它會影響什麼?如何實現的?

    6. Spring Bean 的生命週期( init-method 、intilizingbean 、 afterproperties 、 ... )

    7. 。。。

 

     Spring Boot / Cloud

    1.簡單介紹一下SpringBoot,優勢?

    2.SpringBoot核心配置文件是什麼?有哪些類型?

    3.SpringBoot實現熱部署的方式?

    4.若想啓動一個SpringBoot程序,該如何操做?

    5.什麼是SpringCloud?其主要解決了哪些問題?

    6.SpringColud的核心組件有哪些?(網關、熔斷器、配置等等)

    7.。。。

 

  其餘框架

    1.ORM框架有哪些?

    2.是否有用過Mybatis、Hibernate框架?

    3.mybaits中的一級緩存、二級緩存理解?

    4.hibernate對象中的狀態有哪些?

    5.這兩個框架之間的區別?是否支持懶加載(延遲加載)等

    6.。。。

 

  設計模式

    1. 項目中使用了哪些設計模式?有什麼優點?

    2.設計模式的原則有哪些,怎樣理解?

    3.單例模式的實現方式有幾種?(DCL這種模式怎麼理解,爲何加volatile?)

    4.閱讀JDK源碼時,有哪些比較深入的設計模式?

    5.挑出其中幾種設計模式,分別闡述其特色(異同點)

    6.。。。

    

  分佈式事物 / 鎖

     1.

     2.

 

  中間件

     Redis

      1.

     RabbitMQ

      1.

     Dubbo

      1.

     Zookeeper

      1.

     Nginx

      1.

 

  數據結構與算法

     1.說說你瞭解的數據結構有哪些,各有什麼特色?

     2.hash、數組、集合、字符串、跳錶、樹(紅黑樹,二叉樹)等分別是什麼,在java中怎麼應用的?

     3.說一說經常使用的排序算法有哪些?

     4.自定義實現一個LRU、FILO之類的算法?

     5.。。。

 

  數據庫

     1. 

     2.

 

  JVM

    1.JVM是什麼?與JDK JRE的區別?

    2.JVM的劃分?其運行數據區域的劃分?

    3.JVM的GC收集算法?算法對應的GC收集器?

    4.垃圾收集器的有哪些?各有什麼優點?(JDK1 - 12能夠百度查一下)

      5.如何判斷Java內存溢出?(內存溢出與內存泄露的緣由,解決點)

    6.OOM發生的區域?(堆、棧、永久區...)

    7.如何排查線上出現的內存溢出?(使用命令或工具)

    8.Full GC 、 Young GC、 minor GC 、mijor GC何時觸發?

    9.經常使用的JVM配置及調優參數有哪些?及參數的做用?

    10.類加載機制?編譯優化?(從逃逸分析等進行闡述)

    11.。。。

 

  運維 / Linux

    1.

    2.

  

  其餘(問題解決思路)

    1.在項目開發中的難點與疑點有哪些,怎麼處理的?

    2.實現商場系統中的秒殺業務,簡單描述一下總體架構及思路?

    3.開發中,編碼用什麼?utf-8與GBK能夠直接轉換嗎?

    4.。。。

 

  軟能力 ( Soft Skills )

    1. 最近有沒有關注哪些新技術?重點學習的內容?

    2. 工做任務很是多且繁雜時,你會如何處理?(判斷抗壓能力)

    3. 項目工期沒有按照排期,延期時,會如何處理?如何保障開發質量?有沒有好的處理方式?

    4. 和同事關於項目的設計思路不一致,如何提調整?

    5. 職業規劃是什麼?短時間目標?長期目標?

    6. 。。。

    

  筆試

    1.這個因公司而異,能夠刷一刷力扣(LeetCode)牛客的題庫

    2.。。。

 

  面試的目的主要是觀察應聘者的表述理解、思惟認知、假設預想、以及發展願景等等綜合考慮,畢竟招人嘛,一般不會考慮短時間的,而是須要可以與公司同發展的,且可以帶動工做氛圍的最好,逗比也是能夠的,調整一下工做緊張狀態... ...

 

   畢業到如今,工做了幾年,總結一下面試題(有被面的,有面他人的,有網站找的,有朋友經歷的),因爲開發問題重複性,答案就略,後續不穩定更新... ...

 

 

  (願你的每一行代碼,都有讓世界進步的力量    ------   fn)

相關文章
相關標籤/搜索