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

java基礎

全是基礎不用多說確定考的多,尤爲是招銀java

  • OOP特性/java語言特性:封裝、繼承、多態
  • 多態具體的表現:多態應用舉例、如何調用父類方法(super)、重寫和重載(重寫父類方法的規則、構造方法可否重寫。。)
  • 類、抽象類、接口:抽象類和接口的區別、引用傳遞和值傳遞、java只有值傳遞
  • 泛型
  • 反射:class類的意義
  • StringBuffer、StringBuilder、String區別:String經常使用方法
  • static關鍵字在那個內存區域
  • java經常使用包有哪些
  • final關鍵字
  • 建立新對象的方法
  • java如何緩存(與redis、memcache無關)

容器

簡單linux

  • 集合類的層次關係,簡單介紹
  • equals()、hashcode()的區別,重寫注意事項
  • TreeMap瞭解嗎
  • HashMap、HashTable、ConcurrentHashMap:區別、hashMap實現原理、put方法作了什麼、底層源碼、自定義類放入hashmap的要求(重寫equals和hashcode)
  • LinkedList和ArrayList區別

線程

難點在於被問到手寫線程代碼,那就算本身倒黴了;不然線程還算簡單面試

  • 線程和進程
  • 線程定義方法,這些方法的區別
  • 線程狀態轉換圖
  • concurrent包有啥內容
  • BlockingQueue原理
  • 線程安全的容器
  • 線程池相關:線程池參數意義,如何設置線程池參數,如何調優線程池
  • 程間通訊:概念、手段:同步包下的同步器、volatile、synchronized、單例+多線程、join
  • 線程同步:概念
  • 死鎖:原理和解決方式、手寫死鎖
  • 綜合題目(我的認爲難度較大,遇到算你倒黴):景區多個入口出口統計人數、多線程保證一個對象、雙重檢查單例手寫、生產者消費者手寫、手寫多個線程按順序執行
  • 樂觀鎖悲觀鎖思想:樂觀鎖和悲觀鎖的經常使用實現方式(樂觀鎖:版本號機制、CAS算法)、經常使用的樂觀鎖悲觀鎖都有啥(樂觀鎖atomic包下的、悲觀鎖synchronized reentrantLock)
  • 併發訪問錯誤的解決
  • 用lock實現先讀再寫(能答出來的我五體投地)

數據庫

問的就那些,背就完事了,很簡單redis

  • 手寫基礎語句
  • 事務(!!很重要):隔離級別、四個特性、不一樣隔離級別產生的問題(髒讀幻讀不可重複讀)
  • 存儲過程 | 函數 | 觸發器:存儲過程和函數的區別,如何選擇使用;觸發器分類
  • 存儲引擎
  • 高級查詢相關:內外連接的區別、左右連接的區別
  • 索引相關(!!很重要):原理、索引優缺點、索引設計優化策略、經常使用索引類型、索引生效場景
  • 數據庫(非索引)優化
  • 數據量巨大時,如何分庫分表,場景、條件和實現方式
  • B樹和B+樹:區別、畫一個B+樹
  • 設計無限極分類表
  • union和union all
  • 查詢結果去重:distinct和group by的區別
  • 數據庫鏈接池:最大鏈接數、最小鏈接數

JVM

簡單算法

  • jvm運行時內存分配:各區域比例設置
  • GC:GC算法,堆和GC算法;GC時間
  • finalize方法
  • 內存泄漏的產生和解決(嚴格來講不屬於jvm相關知識)
  • 對象建立流程
  • 參數:本身改過什麼JVM參數
  • 類初始化順序(加載鏈接初始化)
  • 對象如何判斷是垃圾
  • 回收過程
  • 靜態變量實例域(啥玩意)

算法

算法本人沒啥好說的,本身刷吧,如下是出現過的經典題,一些偏門的我就不寫了spring

  • 排序算法:七種基礎算法必定要熟練到手寫,各自的特色和複雜度;隨機快排和經典快排,複雜度;給一個序列,手寫快排一次後的序列
  • 隊列和棧:隊列和棧區別,使用場景;數組實現隊列
  • 找到100億url中最多出現的k個(!這個題不少公司都問到了,應該是哈希+分文件+堆排序,本身查吧)
  • 如何把取出的數據樹形結構化
  • 介紹紅黑樹,和AVL樹的區別
  • 一致性哈希,怎麼解決哈希衝突
  • 數組和鏈表:數組和鏈表的區別以及優缺點;列表去重;個有序鏈表合併(!!出現過幾回);找出兩個數組相等的數,不能用其餘數據結構;一個數組中只有兩個數出現一次,其餘的都出現兩次,求這兩個數;給定一個數字和數組,找出數組中兩個相加等於這個數字的兩個數,不能用數據結構;找兩個鏈表的交叉節點
  • 判斷樹1是樹2的子樹
  • 二叉樹:層級遍歷;後序遍歷;72個節點,問非葉子節點數量;求任意兩節點距離,時間複雜度;判斷是不是平衡二叉樹,如何調整平衡二叉樹
  • 矩陣找最短路徑,直接畫出來
  • 手寫LRU

JDBC & ORM

不太問道的一個區域,能問的也少,枉費我當初學了好久sql

  • 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:963944895數組

羣內有技術大咖指點難題,還提供免費的Java架構學習資料(裏面有高可用、高併發、高性能及分佈式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)

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

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

相關文章
相關標籤/搜索