主要是掌握算法的思想,以及常見(jiàn)的經(jīng)典排序、查找等算法,以及如今的大數據算法。
集合
非常重要,也是阿里面試必問(wèn)的內容?;旧暇褪荓ist、Map、Set,問(wèn)的是各種實(shí)現類(lèi)的底層實(shí)現原理,實(shí)現類(lèi)的優(yōu)缺點(diǎn)。
集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的實(shí)現原理,能流利作答,當然能掌握CopyOnWrite容器和Queue是再好不過(guò)的了。另外多說(shuō)一句,ConcurrentHashMap的問(wèn)題在面試中問(wèn)得特別多,大概是因為這個(gè)類(lèi)可以衍生出非常多的問(wèn)題,關(guān)于ConcurrentHashMap。
(1)ConcurrentHashMap的鎖分段技術(shù)
(2)ConcurrentHashMap的讀是否要加鎖,為什么
(3)ConcurrentHashMap的迭代器是強一致性的迭代器還是弱一致性的迭代器
java高級特性
多線(xiàn)程、JVM不管是開(kāi)發(fā),還是面試跳槽,都是重中之重。
多線(xiàn)程:多線(xiàn)程同步、鎖這塊也是重點(diǎn)。
(1)synchronized和ReentrantLock的區別
(2)synchronized鎖普通方法和鎖靜態(tài)方法
(3)死鎖的原理及排查方法等等
(4)以及線(xiàn)程池等
(5)多線(xiàn)程的狀態(tài),以及狀態(tài)之間的切換
JVM:從內存分配,再到內存的回收算法等。
(1)Java虛擬機的內存布局
(2)GC算法及幾種垃圾收集器
(3)類(lèi)加載機制,也就是雙親委派模型
(4)Java內存模型
(5)內存的回收算法
(6)volatile關(guān)鍵字使用規則
異常處理
(1)throwable、 exception 、error 、RuntimeException的區別
(2)異常的處理機制
(3)異常處理的技巧
(4)異常處理的原則
掌握l(shuí)inux的常用命令,以及常見(jiàn)的線(xiàn)上故障需要的linux知識,如果能深入了解linux系統原理就更好了。

性能工具
(1)visualVM
(2)Jprofiler
(3) JMeter等
線(xiàn)上故障
(1)線(xiàn)程數超標
(2)訪(fǎng)問(wèn)超時(shí)
(3)長(cháng)事務(wù)
(4)CPU超標
(5)內存超標
調優(yōu)工具

Web前端調試
(1)firebug
(2)Web Developer
(3)JavaScript Debugger
(4)Yslow
構建工具
(1)maven Grails
(2)maven私服 nexus
經(jīng)典的SSM

阿里中間件開(kāi)源框架


設計模式基本是代碼的重構能力,避免重復造輪子,常見(jiàn)的創(chuàng )建型、結構型等模式需要掌握。

以上架構設計原則:數據庫垂直拆分、消息隊列選型、雙11秒殺、高并發(fā)技術(shù)方案、分布式緩存選型與比較、單點(diǎn)登錄、分庫分表、NoSQL選型等架構設計原則已經(jīng)分享完結,關(guān)注后可查看。

重點(diǎn)是業(yè)務(wù)的理解能力,以及配合技術(shù)的前瞻性。

(1)底層算法和數據結構
(2)Java高級進(jìn)階
(3)Linux操作系統
(4)框架:開(kāi)發(fā)和中間件
(5)設計模式和UML
(6)大型網(wǎng)站架構設計
(7)架構前瞻性:業(yè)務(wù)和技術(shù)
聯(lián)系客服