1.面向對象、面向過程 區別java
2.Java 如何實現的平臺無關web
和C/C++不一樣的是,Java語言提供的編譯器不針對特定的操做系統和CPU芯片進行編程,而是針對Java虛擬機把Java源程序編譯成稱爲字節碼的「中間代碼」,而後Java虛擬機負責將字節碼翻譯成虛擬機所在平臺的機器碼,並讓當前平臺運行該機器碼。
Java語言的運行原理:
在一個計算機上編譯獲得的字節碼文件(就是.class文件),能夠複製到任何一個安裝了Java運行環境的計算機上直接運行。而後字節碼文件由虛擬機負責解釋執行,即Java虛擬機將字節碼翻譯成本地計算機的機器碼,而後將機器碼交給本地的操做系統運行。
因爲在一個計算機上編譯獲得的字節碼文件能夠複製到任何一個安裝了Java運行環境的計算機上直接使用,因此字節碼實際上是一種「中間代碼」,這也就是爲何「Java語言可以一次編譯,到處運行,也就是Java跨平臺的緣由。」因此稱Java是一種「半編譯,半解釋的語言」,即源程序——>編譯——>字節碼——>字節碼解釋程序——>對應平臺的機器語言。
算法
3.值傳遞、引用傳遞編程
4.什麼是序列化與反序列化、爲何序列化設計模式
5.死鎖、死鎖如何排查、如何確保線程安全安全
6.有哪些虛擬機性能監控與故障處理工具;(ps, jstack, jmap, jstat, jconsole, jinfo, jhat, javap, btrace, TProfiler)網絡
7.瞭解 23 種設計模式併發
建立型模式:單例模式、抽象工廠模式、建造者模式、工廠模式、原型模式。框架
結構型模式:適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。機器學習
行爲型模式:模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式(Interpreter 模式)、狀態模式、策略模式、職責鏈模式(責任鏈模式)、訪問者模式。
→ 會使用經常使用設計模式
單例的七種寫法:懶漢——線程不安全、懶漢——線程安全、餓漢、餓漢——變種、靜態內部類、枚舉、雙重校驗鎖
8.filter 和 listener
web.xml 中經常使用配置及做用
9.線上問題分析
→ dump 獲取
線程 Dump、內存 Dump、gc 狀況
→ dump 分析
分析死鎖、分析內存泄露
→ dump 分析及獲取工具
jstack、jstat、jmap、jhat、Arthas
10.常見問題解決思路
內存溢出、線程死鎖、類加載衝突
→ 使用工具嘗試解決如下問題,並寫下總結
當一個 Java 程序響應很慢時如何查找問題
當一個 Java 程序頻繁 FullGC 時如何解決問題
如何查看垃圾回收日誌
當一個 Java 應用發生 OutOfMemory 時該如何解決
如何判斷是否出現死鎖
如何判斷是否存在內存泄露
11.Java 的反編譯工具
12.排序算法
13. 海量數據處理
14.大數據知識
15.網絡安全知識
16. 注入攻擊
SQL 注入、XML 注入、CRLF 注入
17.加密與解密
對稱加密、非對稱加密、哈希算法、加鹽哈希算法
MD5,SHA一、DES、AES、RSA、DSA
18.分佈式
數據一致性、服務治理、服務降級
19.算法
共識算法、Raft 協議、Paxos 算法與 Raft 算法、
20.微服務
→ Docker & Kubernets
→ Spring Boot
→ Spring Cloud
21.高併發
→ 分庫分表
→ CDN 技術
→ 消息隊列
22.監控
→ 監控什麼
CPU、內存、磁盤 I/O、網絡 I/O 等
監控手段
進程監控、語義監控、機器資源監控、數據波動
→ 監控數據採集
日誌、埋點
23.搜索引擎
Solr、Lucene、Nutch、Elasticsearch
24.區塊鏈
哈希算法、Merkle 樹、公鑰密碼算法、共識算法、
Raft 協議、Paxos 算法與 Raft 算法、拜占庭問題與算法、消息認證碼與數字簽名
25.人工智能
數學基礎、機器學習、人工神經網絡、深度學習、應用場景。
→ 經常使用框架TensorFlow、DeepLearning4J