1 Java基礎(chǔ)
1.1 Collection和Map
(1)掌握Collection和Map的繼承體系谓罗。
(2)掌握ArrayList描函、LinkedList、Vector些阅、Stack伞剑、PriorityQueue、HashSet市埋、LinkedHashSet黎泣、TreeSet、HashMap缤谎、LinkedHashMap抒倚、TreeMap、WeakHashMap弓千、EnumMap衡便、TreeMap献起、HashTable的特點(diǎn)和實(shí)現(xiàn)原理洋访。
(3)掌握CopyOnWriteArrayList、CopyOnWriteArraySet谴餐、ConcurrentHashMap的實(shí)現(xiàn)原理和適用場景姻政。
1.2 IO
(1)掌握InputStream、OutputStream岂嗓、Reader汁展、Writer的繼承體系。
(2)掌握字節(jié)流(FileInputStream、DataInputStream食绿、BufferedInputStream侈咕、FileOutputSteam、DataOutputStream器紧、BufferedOutputStream)和字符流(BufferedReader耀销、InputStreamReader、FileReader铲汪、BufferedWriter熊尉、OutputStreamWriter、PrintWriter掌腰、FileWriter)狰住,并熟練運(yùn)用。
(3)掌握NIO實(shí)現(xiàn)原理及使用方法齿梁。
1.3 異常
(1)掌握Throwable繼承體系催植。
(2)掌握異常工作原理。
(3)了解常見受檢異常(比如FileNotFoundException)勺择、非受檢異常(比如NullPointerException)和錯誤(比如IOError)查邢。
1.4 多線程
(1)掌握Executors可以創(chuàng)建的三種(JAVA8增加了一種,共四種)線程池的特點(diǎn)及適用范圍酵幕。
(2)掌握多線程同步機(jī)制扰藕,并熟練運(yùn)用。
1.5 Socket
(1)掌握Socket通信原理芳撒。
(2)熟練使用多線程結(jié)合Socket進(jìn)行編程邓深。
(大家可以加入java愛好者集結(jié)群,一同交流學(xué)習(xí)java:498290461)
歡迎交流:
(個人q:858288017)
2 Java虛擬機(jī)
2.1 JVM內(nèi)存區(qū)域劃分
(1)掌握程序計數(shù)器笔刹、堆芥备、虛擬機(jī)棧、本地方法棧舌菜、方法區(qū)(JAVA8已移除)萌壳、元空間(JAVA8新增)的作用及基本原理。
(2)掌握堆的劃分:新生代(Eden日月、Survivor1袱瓮、Survivor2)和老年代的作用及工作原理。
(3)掌握J(rèn)VM內(nèi)存參數(shù)設(shè)置及調(diào)優(yōu)爱咬。
2.2 類加載
(1)掌握類的加載階段:加載尺借、鏈接(驗(yàn)證、準(zhǔn)備精拟、解析)燎斩、初始化虱歪、使用、卸載栅表。
(2)掌握類加載器分類及其應(yīng)用:啟動類加載器笋鄙、擴(kuò)展類加載器、應(yīng)用程序類加載器怪瓶、自定義加載器局装。
3 J2EE
(1) 掌握J(rèn)SP內(nèi)置對象、動作及相關(guān)特點(diǎn)和工作原理劳殖。
(2) 掌握Servlet的特點(diǎn)和工作原理铐尚。
(3) 掌握Spring框架的IOC和AOP實(shí)現(xiàn)原理(反射和動態(tài)代理)。
(4) 至少掌握一個MVC框架(Spring MVC哆姻,Struts等)的工作原理宣增,并熟練運(yùn)用。
(5) 至少掌握一個ORM框架(Hibernate矛缨,MyBatis等)的工作原理爹脾,并熟練運(yùn)用。
4 數(shù)據(jù)結(jié)構(gòu)與算法
(1)掌握線性表和樹的特點(diǎn)并熟練運(yùn)用箕昭。
(2)掌握常用排序和查找算法:插入排序(直接插入排序灵妨、希爾排序)、選擇排序(直接選擇排序落竹、堆排序)泌霍、交換排序(冒泡排序、快速排序)述召、歸并排序朱转,順序查找、二分查找积暖、哈希查找藤为。
(3) 熟練運(yùn)用常見排序和查找算法思想解決編程問題。
(4)了解幾大基本算法:貪心算法夺刑、分治策略缅疟、動態(tài)規(guī)劃。
5 計算機(jī)網(wǎng)絡(luò)
(1)掌握網(wǎng)絡(luò)的分層結(jié)構(gòu)遍愿,及每層的功能特點(diǎn)存淫。
(2)掌握TCP/IP的通信原理(三次握手、四次揮手)
6 數(shù)據(jù)庫
(1)掌握復(fù)雜的SQL語句編寫错览。
(2)掌握數(shù)據(jù)庫的優(yōu)化(SQL層面和表設(shè)計層面)纫雁。
(3)至少掌握一款數(shù)據(jù)庫產(chǎn)品。
(4)熟悉高并發(fā)倾哺、大數(shù)據(jù)情況下的數(shù)據(jù)庫開發(fā)轧邪。
7 Web技術(shù)
(1)掌握AJAX的工作原理。
(2)至少熟悉一款JS框架(比如JQuery)羞海。
8 設(shè)計模式
(1)熟悉常見的設(shè)計模式忌愚。
(2)會將設(shè)計模式理論應(yīng)用到實(shí)際開發(fā)中。
9 Linux
(1)熟練運(yùn)用Linux常見命令却邓。
(2)熟悉Linux操作系統(tǒng)基本概念及特點(diǎn)硕糊。
(3)熟悉Shell腳本。
10 操作系統(tǒng)
(1)掌握操作系統(tǒng)的進(jìn)程管理腊徙。
(2)了解操作系統(tǒng)的I/O简十。
11 正則表達(dá)式
(1)掌握常見正則表達(dá)式符號。
(2)熟練運(yùn)用正則表達(dá)式解決實(shí)際問題(比如匹配電話號碼撬腾、郵箱螟蝙、域名等)。