招銀網絡面試題、考點、知識點總結(Java崗)

 

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等多個知識點的架構資料)

比你優秀的對手在學習,你的仇人在磨刀,你的閨蜜在減肥,隔壁老王在練腰, 咱們必須不斷學習,不然咱們將被學習者超越!

趁年輕,使勁拼,給將來的本身一個交代!

相關文章
相關標籤/搜索