java工程師面試必須這些知識點

本文已收錄至公衆號:灰太狼學爪哇。(一個java程序員都在關注的公衆號)java

花了一下午擼了這份完整的java工程師知識(面試)清單,很負責任的說,掌握了這些知識點秒殺一切java面試,迎娶白富美走上人生巔峯是早晚的事。mysql

整理這些知識點的目的是,第一,幫助本身梳理下咱們須要掌握的知識點;第二,發現本身的不足,有針對性查缺補漏;第三,明確了本身接下來公衆號分享內容的方向。linux

接下來公衆號的分享我會根據小夥伴的留言或者隨機選擇下面專題中的某個問題,採用模擬面試的方式,隨着面試官的層層逼問,用近乎完美的答案吊打面試官,歡迎你們有所期待。git

基礎

javaSE

  • 多態
  • 接口和抽象類
  • 序列化
  • 集合
  • 代理(動態代理、靜態代理)
  • 反射
  • 設計模式
  • IO

javaWeb

  • cookie和session
  • servet知識
  • tomcat知識

JVM

  • java類加載機制
  • 雙親委派模型
  • 經常使用的GC算法
  • 經常使用垃圾收集器及其原理
  • JVM內存模型
  • 常見JVM內存分析工具及分析方法
  • CUP到了100%怎麼排查
  • JDK1.7和JDK1.8區別
  • JDK1.8新特性
  • 經常使用JVM調優參數
  • 判斷對象是否存活算法
  • 引用的四種級別
  • finalize()方法
  • 碰到過什麼樣的JVM線上問題,怎麼排查的(最喜歡問的)

網絡編程

  • tcp和udp
  • tcp的三次握手和四次揮手
  • AIO、BIO和NIO
  • 描述一個請求完整的執行過程(最常問)
  • http和https

互聯網工具

  • git
  • maven
  • linux

併發專題

JMM內存模型

  • 線程和程序,並行和併發
  • volatile
  • 指令重排序,原子性,可見性

併發同步處理

  • synchronized內置鎖實現原理
  • AQS原理
  • CAS算法樂觀鎖
  • atomic原子類
  • threadLocal類
  • 各類鎖(悲觀鎖、樂觀鎖、可重入鎖、公平鎖、非公平鎖等)
  • ReentrantLock/ReentrantReadWriteLock/ReentrantWriteLock詳解
  • Condition條件隊列、同步隊列

JUC併發包

  • CountDownlatch詳解
  • Semaphore詳解
  • CyclicBarrier詳解
  • 阻塞隊列(ArrayBlockingQueue、CurrentLinkedQueue、DelayQueue、PriorityBlockingQueue)
  • ForkJoin框架
  • 線程池詳解
  • HashMap和ConcurrentHashMap詳解
  • ArrayList、LinkedList、CopyOnWriteArrayList詳解
  • Set、CopyOnWriteArraySet詳解

分佈式專題

Redis緩存

  • 什麼是redis?
  • 爲何要用redis?使用redis的好處
  • 怎麼用redis
  • redis五種數據結構以及使用場景
  • 使用redis會有哪些問題?以及怎麼解決
  • redis集羣的搭建和原理
  • redis五種數據結構底層實現是怎樣的

RocketMq(RabbitMq、kafka)消息隊列

  • RocketMq、RabbitMq和kafka三者有什麼不一樣?優缺點以及使用場景
  • RocketMq是什麼?
  • RocketMq使用場景?
  • RocketMq消息發送原理
  • RocketMq消息丟失怎麼辦?
  • RocketMq集羣同步機制
  • RocketMq事務原理

Zookeeper

  • 什麼是zookeeper?
  • 爲何要使用zookeeper?(優缺點)
  • zookeeper使用場景
  • zookeeper原理

Dubbo

  • dubbo是什麼?
  • 爲何要使用dubbo?
  • dubbo使用場景
  • dubbo的rpc調用和http調用的區別,有什麼優勢
  • dubbo原理
  • 使用dubbo有沒有碰到什麼問題?怎麼解決?(如:dubbo重試)
  • dubbo怎麼作到高可用
  • dubbo註冊中心的服務發現
  • dubbo源碼分析

netty

  • 爲何使用netty
  • 內部實現原理
  • netty我還沒用過,後面再總結

mysql分庫分表

  • 什麼是分庫分表
  • 分庫分表應用場景
  • 有什麼優缺點
  • 分庫分表規則(算法),爲何考慮設計這樣的規則,有沒有可替代的其餘規則
  • 如何作到從一個單庫應用平滑過渡到分庫分表的應用
  • 若是作到分庫分表的數據,按條件分頁查詢

框架源碼專題

spring源碼

  • spring IOC 容器設計原理
  • spring的bean的生命週期
  • spring Context的裝載過程源碼分析
  • FactoryBean和BeanFactory區別
  • AOP註解編程
  • AOP源碼分析
  • spring事務控制與源碼分析
  • spring攔截器

springMVC源碼

  • MVC設計思想
  • springMVC原理(請求過程)
  • springMVC組成的體系結構(映射器、執行器、視圖解析器、異常捕捉等)
  • springMVC中的經常使用註解

springboot

  • springboot原理(啓動流程)
  • springboot優缺點,使用它有什麼好處
  • springboot經常使用註解

mybatis源碼

  • 使用mybatis解決了什麼問題?有什麼好處
  • mybatis原理
  • 初始化過程
  • 一條sql語句執行過程
  • Configuration、Mapper、SqlSession、Excutor源碼分析
  • mybatis的一級緩存和二級緩存
  • 若是讓你手寫一套mybatis,你會怎麼設計(面試被問過)

數據結構和算法

數據結構

  • 數組
  • 鏈表
  • 跳躍表
  • 堆棧
  • 隊列
  • 各類樹
  • 矩陣

算法

  • 經常使用排序算法以及時間、空間複雜度
  • 《劍指offer》
  • 《LeetCode》
  • 常見top K問題

數據庫專題

mysql

  • 數據庫設計三範式
  • 事務(特性和隔離級別)
  • MVCC多版本併發控制
  • 事務併發問題
  • 事務日誌(binlog、redo log、undo log)
  • 索引數據結構類型
  • 索引分類(聚簇索引和非聚簇索引)
  • mysam和InnoDb區別
  • 架構原理(一條SQL的執行過程)
  • SQL調優
  • mysql高可用(MMM、MHA、PXC)

ElasticSearch

  • es集羣原理
  • 一條查詢請求的完整過程
  • es的優缺點
  • es應用場景
  • 滾動查詢
  • es的倒排索引原理
  • 怎麼保證es和mysql的數據一致性

MongoDB

  • mongoDB的特性
  • mongoDB的使用場景
  • mongoDB的優缺點
  • 使用過程當中有沒有碰到什麼問題

項目

經常使用項目的設計

  • 登陸註冊
  • 單點登陸
  • 短連接

描述本身項目

  • 你在這個項目中參與了哪些部分?
  • 你是怎麼設計的?
  • 爲何這麼設計?
  • 有沒有其餘方案替代?
  • 用到了什麼技術?爲何要用這個技術?有沒有可替代的?
  • 開發過程當中有沒有碰到什麼(沒考慮到的)難點?你是怎麼解決的
  • 還能不能優化?
  • 你有什麼收穫?
  • 讓你來作跟別人來作,你的優點在哪?(這個有點扯淡,可是有些面試官仍是會問)

最後

有些人花了三五年就能掌握這些知識點,成功面上高薪架構師,程序員

有些人花了十多年卻只知道些皮毛,天天作着CRUD的工做。web

相信點贊關注個人都是第一種 ^_^面試

我是灰太狼,一個95後自我精進的java程序員。我的運營的公衆號:灰太狼學爪哇。你想知道的都在這裏。(關注免費領取100G各階段的學習、面試資料)redis

相關文章
相關標籤/搜索