阿里 P7 的需掌握哪些技術?最新BAT技術面試78題:資料結構+網路+NoSQL+分散式架構!

2020-10-17 12:00:39

2018最新BAT技術面試78題:資料結構+網路+NoSQL+分散式架構!

 

演演算法和資料結構

  • 陣列、連結串列、二元樹、佇列、棧的各種操作(效能,場景)
  • 二分查詢和各種變種的二分查詢
  • 各類排序演演算法以及複雜度分析(快排、歸併、堆
  • 各類演演算法題(手寫)
  • 理解並可以分析時間和空間複雜度。
  • 動態規劃(筆試回回有。。)、貪心。
  • 紅黑樹、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必考題範圍與答案獲取記得一鍵三連

 

 答案獲取方式

先一鍵三連哦