
演算法和資料結構
- 陣列、鏈表、二叉樹、佇列、堆疊的各種操作(性能,場景)
- 二分查找和各種變種的二分查找
- 各類排序演算法以及復雜度分析(快排、歸并、堆)
- 各類演算法題(手寫)
- 理解并可以分析時間和空間復雜度,
- 動態規劃(筆試回回有,,)、貪心,
- 紅黑樹、AVL樹、Hash樹、Tire樹、B樹、B+樹,
- 圖演算法(比較少,也就兩個最短路徑演算法理解吧)
計算機網路
1.OSI7層模型(TCP4層)
- 每層的協議
- url到頁面的程序
2.HTTP
- http/https 1.0、1.1、2.0
- get/post 以及冪等性
- http 協議頭相關
- 網路攻擊(CSRF、XSS)
3.TCP/IP
- 三次握手、四次揮手
- 擁塞控制(程序、閾值)
- 流量控制與滑動視窗
- TCP與UDP比較
- 子網劃分(一般只有筆試有)
- DDos攻擊
4.IO/NIO/AIO
- 三者原理,各個語言是怎么實作的
- Netty
- Linux內核select poll epoll
資料庫(最多的還是mysql,Nosql有redis)
1.mysql和nosql
- 索引(包括分類及優化方式,失效條件,底層結構)
- sql語法(join,union,子查詢,having,group by)
- 引擎對比(InnoDB,MyISAM)
- 資料庫的鎖(行鎖,表鎖,頁級鎖,意向鎖,讀鎖,寫鎖,悲觀鎖,樂觀鎖,以及加鎖的select sql方式)
- 隔離級別,依次解決的問題(臟讀、不可重復讀、幻讀)
- 事務的ACID
- B樹、B+樹
- 優化(explain,慢查詢,show profile)
- 資料庫的范式,
- 分庫分表,主從復制,讀寫分離,
- Nosql相關(redis和memcached區別之類的,如果你熟悉redis,redis還有一堆要問的)
2.作業系統:
- 行程通信IPC(幾種方式),與執行緒區別
- OS的幾種策略(頁面置換,行程調度等,每個里面有幾種演算法)
- 互斥與死鎖相關的
- linux常用命令(問的時候都會給具體某一個場景)
- Linux內核相關(select、poll、epoll)
3.編程語言(這里只說Java):
- 把我之后的面經過一遍,Java感覺覆寫的就差不多了,不過下面還是分個類,
- Java基礎(面向物件、四個特性、多載重寫、static和final等等很多東西)
- 集合(HashMap、ConcurrentHashMap、各種List,最好結合原始碼看)
- 并發和多執行緒(執行緒池、SYNC和Lock鎖機制、執行緒通信、volatile、ThreadLocal、CyclicBarrier、Atom包、CountDownLatch、AQS、CAS原理等等)
- JVM(記憶體模型、GC垃圾回收,包括分代,GC演算法,收集器、類加載和雙親委派、JVM調優,記憶體泄漏和記憶體溢位)
- IO/NIO相關
- 反射和代理、例外、Java8相關、序列化
- 設計模式(常用的,jdk中有的)
- Web相關(servlet、cookie/session、Spring<AOP、IOC、MVC、事務、動態代理>、Mybatis、Tomcat、Hibernate等)
- 看jdk原始碼
專案實戰經歷
- 這個每個人的專案不同,覆寫的技術也不一樣,所以不能統一去說,
- 這里的技巧呢,無非是找到自己專案中的亮點,簡歷上敘述的簡練并且吸引眼球,同時自己要很熟悉這個點(畢竟可以提前準備)
- 最好自己多練,就像有個劇本或者稿子一樣,保證面試中可以很熟練通俗地講出,并且讓人聽著很舒服,
分布式架構:
- CAP原理和BASE理論,
- Nosql與KV存盤(redis,hbase,mongodb,memcached等)
- 服務化理論(包括服務發現、治理等,zookeeper、etcd、springcloud微服務、)
- 負載均衡(原理、cdn、一致性hash)
- RPC框架(包括整體的一些框架理論,通信的netty,序列化協議thrift,protobuff等)
- 訊息佇列(原理、kafka,activeMQ,rocketMQ)
- 分布式存盤系統(GFS、HDFS、fastDFS)、存盤模型(skipList、LSM等)
- 分布式事務、分布式鎖等
腳本語言:(只是作為橫向擴充,一般問到linux也會問問shell腳本)
- python
- php
- shell
- golang
- ...
大資料與資料分析:
- hadoop生態圈(hive、hbase、hdfs、zookeeper、storm、kafka)
- spark體系
- 語言:python、R、scala
- 搜索引擎與技術
機器學習演算法:
- 模型和演算法很多,不細說了,如果很熟練就去投演算法,國內很多公司都演算法崗都很稀缺,其他崗可以大概了解下理論,
其他工具的理論和使用:
- 這個更多了,問的多的比如git、docker、maven/gradle、Jenkins等等,自己需要的話選擇性地去學,
最全阿里高級Java必考題范圍與答案獲取記得一鍵三連



答案獲取方式
先一鍵三連哦

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/177343.html
標籤:其他
