java基礎java
全是基礎不用多說確定考的多,尤爲是招銀linux
OOP特性/java語言特性:封裝、繼承、多態面試
多態具體的表現:多態應用舉例、如何調用父類方法(super)、重寫和重載(重寫父類方法的規則、構造方法可否重寫。。)redis
類、抽象類、接口:抽象類和接口的區別、引用傳遞和值傳遞、java只有值傳遞算法
泛型spring
反射:class類的意義sql
StringBuffer、StringBuilder、String區別:String經常使用方法數據庫
static關鍵字在那個內存區域設計模式
java經常使用包有哪些數組
final關鍵字
建立新對象的方法
java如何緩存(與redis、memcache無關)
容器
簡單
集合類的層次關係,簡單介紹
equals()、hashcode()的區別,重寫注意事項
TreeMap瞭解嗎
HashMap、HashTable、ConcurrentHashMap:區別、hashMap實現原理、put方法作了什麼、底層源碼、自定義類放入hashmap的要求(重寫equals和hashcode)
LinkedList和ArrayList區別
線程
難點在於被問到手寫線程代碼,那就算本身倒黴了;不然線程還算簡單
線程和進程
線程定義方法,這些方法的區別
線程狀態轉換圖
concurrent包有啥內容
BlockingQueue原理
線程安全的容器
線程池相關:線程池參數意義,如何設置線程池參數,如何調優線程池
程間通訊:概念、手段:同步包下的同步器、volatile、synchronized、單例+多線程、join
線程同步:概念
死鎖:原理和解決方式、手寫死鎖
綜合題目(我的認爲難度較大,遇到算你倒黴):景區多個入口出口統計人數、多線程保證一個對象、雙重檢查單例手寫、生產者消費者手寫、手寫多個線程按順序執行
樂觀鎖悲觀鎖思想:樂觀鎖和悲觀鎖的經常使用實現方式(樂觀鎖:版本號機制、CAS算法)、經常使用的樂觀鎖悲觀鎖都有啥(樂觀鎖atomic包下的、悲觀鎖synchronized reentrantLock)
併發訪問錯誤的解決
用lock實現先讀再寫(能答出來的我五體投地)
數據庫
問的就那些,背就完事了,很簡單
手寫基礎語句
事務(!!很重要):隔離級別、四個特性、不一樣隔離級別產生的問題(髒讀幻讀不可重複讀)
存儲過程 | 函數 | 觸發器:存儲過程和函數的區別,如何選擇使用;觸發器分類
存儲引擎
高級查詢相關:內外連接的區別、左右連接的區別
索引相關(!!很重要):原理、索引優缺點、索引設計優化策略、經常使用索引類型、索引生效場景
數據庫(非索引)優化
數據量巨大時,如何分庫分表,場景、條件和實現方式
B樹和B+樹:區別、畫一個B+樹
設計無限極分類表
union和union all
查詢結果去重:distinct和group by的區別
數據庫鏈接池:最大鏈接數、最小鏈接數
JVM
簡單
jvm運行時內存分配:各區域比例設置
GC:GC算法,堆和GC算法;GC時間
finalize方法
內存泄漏的產生和解決(嚴格來講不屬於jvm相關知識)
對象建立流程
參數:本身改過什麼JVM參數
類初始化順序(加載鏈接初始化)
對象如何判斷是垃圾
回收過程
靜態變量實例域(啥玩意)
算法
算法本人沒啥好說的,本身刷吧,如下是出現過的經典題,一些偏門的我就不寫了
排序算法:七種基礎算法必定要熟練到手寫,各自的特色和複雜度;隨機快排和經典快排,複雜度;給一個序列,手寫快排一次後的序列
隊列和棧:隊列和棧區別,使用場景;數組實現隊列
找到100億url中最多出現的k個(!這個題不少公司都問到了,應該是哈希+分文件+堆排序,本身查吧)
如何把取出的數據樹形結構化
介紹紅黑樹,和AVL樹的區別
一致性哈希,怎麼解決哈希衝突
數組和鏈表:數組和鏈表的區別以及優缺點;列表去重;個有序鏈表合併(!!出現過幾回);找出兩個數組相等的數,不能用其餘數據結構;一個數組中只有兩個數出現一次,其餘的都出現兩次,求這兩個數;給定一個數字和數組,找出數組中兩個相加等於這個數字的兩個數,不能用數據結構;找兩個鏈表的交叉節點
判斷樹1是樹2的子樹
二叉樹:層級遍歷;後序遍歷;72個節點,問非葉子節點數量;求任意兩節點距離,時間複雜度;判斷是不是平衡二叉樹,如何調整平衡二叉樹
矩陣找最短路徑,直接畫出來
手寫LRU
JDBC & ORM
不太問道的一個區域,能問的也少,枉費我當初學了好久
sql注入和防治辦法(preparestatement和statement區別,有啥優勢)
mybatis:如何開啓延遲加載、如何分頁、mybatis批量查詢手寫
數據庫鏈接池的實現方式:本身設計鏈接池須要考慮什麼
驅動爲何使用反射而非new(內部存在內部靜態代碼塊,防止加載兩次)
spring族
介紹springboot/Spring:不要僵硬的背ioc和aop,雖然主要確定是說這個,但能夠隨便扯點別的啊、好比spring是輕量級一站式框架
Spring中用到的設計模式:spring如何實現單例模式的
spring的隔離級別
spring事務寫在那一部分(service層),爲何不在controller或者dao層
springmvc工做流程
攔截器作啥的,啥時候用
spring修改成prototype的方法
aop的使用方式,何時用jdk動態代理何時用cglib(不使用接口時的狀況)(別問我,問就是不懂)
spring中全局變量如何建立
設計模式
單例模式(!!很是重要!!):手寫餓漢和懶漢式、單例保證多線程安全的方式,雙重檢測單例模式
工廠模式、策略模式、觀察者模式、適配器模式(比較常考)
操做系統 & 計算機網絡
這部分我都說的不知道,可是仍是過了,唉,感謝面試官啊
子網掩碼做用
進程調度算法
進程間通訊方式
TCP和UDP的區別(!!常常考)
TCP三握四揮(!!常常考)
HTTP(!!常常考):常見狀態碼、http和https、http請求響應的內容、get和post區別
訪問網站的流程和涉及到的協議,對應七層模型(!!常常考)
項目 & 綜合題
這方面每一個人不同而且重複機率低,我列舉幾個有參考價值的
怎麼保證寫代碼出錯少
項目中類函數如何聲明
項目中印象顯著的bug,怎麼解決的
說一下微服務,微服務如何管理
path和classpath區別
eclipse、intellij快捷鍵和使用技巧
瀏覽器請求如何保證到達後臺而非使用瀏覽器緩存(請求加隨機參數)
設計轉帳場景(這是我被問到的綜合題,撲街)
設計移動支付場景
BS和CS
系統卡頓如何查找緣由
linux中不少waittime連接什麼狀況
寫在最後
最後,歡迎作Java的工程師朋友們加入Java高級架構進階Qqun:1017599436
羣內有技術大咖指點難題,還提供免費的Java架構學習資料(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)
比你優秀的對手在學習,你的仇人在磨刀,你的閨蜜在減肥,隔壁老王在練腰, 咱們必須不斷學習,不然咱們將被學習者超越!
趁年輕,使勁拼,給將來的本身一個交代!