看看自己離java高級(jí)程序員還差多少
section 1
1、Core Java,就是Java基礎(chǔ)、JDK的類庫(kù),很多童鞋都會(huì)說(shuō),JDK我懂,但是懂還不足夠,知其然還要知其所以然,JDK的源代碼寫(xiě)的非常好,要經(jīng)常查看,對(duì)使用頻繁的類,比如String,集合類(List,Map,Set)等數(shù)據(jù)結(jié)構(gòu)要知道它們的實(shí)現(xiàn),不同的集合類有什么區(qū)別,然后才能知道在一個(gè)具體的場(chǎng)合下使用哪個(gè)集合類更適合、更高效,這些內(nèi)容直接看源代碼就OK了
2、多線程并發(fā)編程,現(xiàn)在并發(fā)幾乎是寫(xiě)服務(wù)端程序必須的技術(shù),那對(duì)Java中的多線程就要有足夠的熟悉,包括對(duì)象鎖機(jī)制、synchronized關(guān)鍵字,concurrent包都要非常熟悉,這部分推薦你看看《Java并發(fā)編程實(shí)踐》這本書(shū),講解的很詳細(xì)
3、I/O,Socket編程,首先要熟悉Java中Socket編程,以及I/O包,再深入下去就是Java NIO,再深入下去是操作系統(tǒng)底層的Socket實(shí)現(xiàn),了解Windows和Linux中是怎么實(shí)現(xiàn)socket的
4、JVM的一些知識(shí),不需要熟悉,但是需要了解,這是Java的本質(zhì),可以說(shuō)是Java的母體, 了解之后眼界會(huì)更寬闊,比如Java內(nèi)存模型(會(huì)對(duì)理解Java鎖、多線程有幫助)、字節(jié)碼、JVM的模型、各種垃圾收集器以及選擇、JVM的執(zhí)行參數(shù)(優(yōu)化JVM)等等,這些知識(shí)在《深入Java虛擬機(jī)》這本書(shū)中都有詳盡的解釋,或者去oracle網(wǎng)站上查看具體版本的JVM規(guī)范.
5、一些常用的設(shè)計(jì)模式,比如單例、模板方法、代理、適配器等等,以及在Core Java和一些Java框架里的具體場(chǎng)景的實(shí)現(xiàn),這個(gè)可能需要慢慢積累,先了解有哪些使用場(chǎng)景,見(jiàn)得多了,自己就自然而然會(huì)去用。
6、常用數(shù)據(jù)庫(kù)(Oracle、MySQL等)、SQL語(yǔ)句以及一般的優(yōu)化
7、JavaWeb開(kāi)發(fā)的框架,比如Spring、iBatis等框架,同樣他們的原理才是最重要的,至少要知道他們的大致原理。
8、其他一些有名的用的比較多的開(kāi)源框架和包,Netty網(wǎng)絡(luò)框架,Apache common的N多包,Google的Guava等等,也可以經(jīng)常去Github上找一些代碼看看。
section 2
每逢長(zhǎng)假都會(huì)有很多程序員跳槽,十一、過(guò)年是跳槽黃金時(shí)刻,尤其是過(guò)年。過(guò)年的時(shí)候年終獎(jiǎng)到手,沒(méi)有了多少牽掛,年終同學(xué)同事聚會(huì)比較多,溝通的就多,各種工作機(jī)會(huì)的消息也相應(yīng)會(huì)多,所以跳槽的機(jī)會(huì)也就會(huì)多。跳槽就必不可少的要經(jīng)過(guò)面試,那么作為一個(gè)Java程序員需要準(zhǔn)備哪些面試知識(shí)呢?下面就給大家說(shuō)說(shuō)。
1、集合框架:

從上圖可以看到主要是Collection和Map的繼承類和Iterator的實(shí)現(xiàn)類,重點(diǎn)掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、TreeMap、HashTable的特點(diǎn)和實(shí)現(xiàn)原理,還有多線程使用場(chǎng)景和插入多還是刪除多的時(shí)候使用什么樣的集合類效率會(huì)更高。
2、IO框架:

主要掌握Reader、Writer、InputStream、OutputStream的繼承類,重點(diǎn)掌握字節(jié)流(FileInputStream、FileOutputSteam、BufferedInputStream、BufferedOutputStream、DataInputStream、DataOutputStream)和字符流(FileReader、FileWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter),并熟練運(yùn)用。還有就是NIO的工作原理要知道。
3、String先關(guān):
主要考察對(duì)String的處理,順帶考察多線程和算法,大公司就是喜歡考察字符串的算法,主要是字符串查找或者剔除,多線程打印字符串,超大字符串處理。
4、異常處理:

掌握Throwable繼承類,理解Error和Exception的區(qū)別,理解運(yùn)行時(shí)異常和編譯異常的區(qū)別,掌握異常的處理方法,掌握try、catch、finally、throw、throws關(guān)鍵字的意義,掌握try-catch-finally語(yǔ)句的執(zhí)行順序,掌握異常的工作原理,知道常見(jiàn)的異常有哪些。
5、多線程:
如何創(chuàng)建和啟動(dòng)一個(gè)線程,有哪些方法?多線程如何交互,線程之間的調(diào)度、讓步、合并,如何同步?生產(chǎn)和消費(fèi)者模型。還有就是掌握線程安全、線程池,死鎖。
6、JVM知識(shí):
掌握常見(jiàn)的垃圾回收機(jī)制,掌握程序計(jì)數(shù)器、堆、棧、方法區(qū)的作用,掌握類的加載機(jī)制。掌握內(nèi)存分代模型和工作原理。掌握J(rèn)VM啟動(dòng)參數(shù)常見(jiàn)配置,了解JVM調(diào)優(yōu)。
7、數(shù)據(jù)結(jié)構(gòu)與算法:
掌握常見(jiàn)查找和排序算法實(shí)現(xiàn)及其時(shí)間、空間復(fù)雜度。掌握常見(jiàn)數(shù)據(jù)結(jié)構(gòu)如鏈表、隊(duì)列、棧的基本原理和實(shí)現(xiàn)。
section 3
經(jīng)常主持對(duì)高級(jí)工程師和中基層Tech?Leader的面試,一年下來(lái)總有百八十場(chǎng),我給大家分享一下我對(duì)于高級(jí)工程師的定位吧,雖然我主要負(fù)責(zé).Net團(tuán)隊(duì),但是對(duì)于其他語(yǔ)言應(yīng)該也是適用的。
一、理論基礎(chǔ):高級(jí)工程師必須有較好的理論基礎(chǔ),既包含一些基礎(chǔ)的學(xué)科知識(shí),也要包含個(gè)人專攻方向的前沿理論。我遇到過(guò)形形色色的求職者,有人自稱精通領(lǐng)域模式,卻不明白什么是聚合根(領(lǐng)域根)。甚至有人無(wú)法列舉常用的非線性結(jié)構(gòu),更別提偽碼實(shí)現(xiàn)和應(yīng)用場(chǎng)景分析了。這些人普遍振振有詞地說(shuō),?我有豐富的開(kāi)發(fā)經(jīng)驗(yàn),項(xiàng)目需要實(shí)現(xiàn)的功能我都能做出來(lái),我只是沒(méi)有去記那些術(shù)語(yǔ)名詞。抱歉,你不是沒(méi)有記術(shù)語(yǔ)名詞,你是根本沒(méi)有潛心看技術(shù)文章的心態(tài),你所謂的學(xué)習(xí)就是看一些諸如《21天精通Java》,《7天,從菜鳥(niǎo)到專家》之類的垃圾書(shū),或者看點(diǎn)視頻。那么你這個(gè)高工,比別人高在哪里呢?當(dāng)單位需要你代表團(tuán)隊(duì)和合作機(jī)構(gòu)溝通,甚至發(fā)表專欄的時(shí)候,你是不是也準(zhǔn)備跟大家講”這個(gè)東西我不知道該怎么講,大家可以看一下我的代碼“。只有代碼可秀的人是碼農(nóng),不是高工,所以我給這類求職者的綜評(píng)是中+封頂。
二、工作經(jīng)驗(yàn):高級(jí)工程師必須有過(guò)在項(xiàng)目中擔(dān)心核心模塊開(kāi)發(fā)或者整體架構(gòu)設(shè)計(jì)的經(jīng)驗(yàn),并且項(xiàng)目越高大上越好,比如你在互聯(lián)網(wǎng)企業(yè)搞過(guò)讀寫(xiě)分離的實(shí)現(xiàn),你在電商搞過(guò)秒殺算法,你在電信行業(yè)做過(guò)網(wǎng)絡(luò)層,我必定會(huì)高看一眼。如果你就僅僅只是一個(gè)人全棧搞過(guò)幾個(gè)小網(wǎng)站,啪啪啪一大堆成熟框架用得倍溜,那么你只是一個(gè)裝配工。我給這類求職者的綜評(píng)是中+封頂。
三、培養(yǎng)潛力:高級(jí)工程師必須有全局思維,如果在你過(guò)往的工作歷程中,你對(duì)你兄弟團(tuán)隊(duì)或者部門(mén)的工作情形一問(wèn)三不知,甚至于一個(gè)項(xiàng)目中,你只懂自己的模塊,其他同事負(fù)責(zé)的模塊你就只會(huì)call個(gè)API,那么你就是一個(gè)很難再進(jìn)一步的人。對(duì)于企業(yè)來(lái)說(shuō),有你不多,無(wú)你不少,所以我給這類求職者的綜評(píng)是中+封頂。
四、溝通能力:高級(jí)工程師在技術(shù)團(tuán)隊(duì)中是絕對(duì)的核心人中,小項(xiàng)目中你就是負(fù)責(zé)人,大項(xiàng)目中你也要負(fù)責(zé)帶新人,那么良好的溝通能力必不可少,如果你僅僅是自己一個(gè)人心里亮堂,你對(duì)企業(yè)的價(jià)值就要大打折扣。這類求職者,我也有錄用過(guò)不少,因?yàn)槌绦騿T木訥可以說(shuō)是一種共性,在這方面沒(méi)法太挑剔,但是我給他們的綜評(píng)是高-封頂。
section 4
如果要應(yīng)聘高級(jí)開(kāi)發(fā)工程師職務(wù),僅僅懂得Java的基礎(chǔ)知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,還必須懂得常用數(shù)據(jù)結(jié)構(gòu)、算法、網(wǎng) 絡(luò)、操作系統(tǒng)等知識(shí)。因此本文不會(huì)講解具體的技術(shù),筆者綜合自己應(yīng)聘各大公司的經(jīng)歷,整理了一份大公司對(duì)Java高級(jí)開(kāi)發(fā)工程師職位的考核綱要,希望可以幫助到需要的人。
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)原理和適用場(chǎng)景。
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)了解常見(jiàn)受檢異常(比如FileNotFoundException)、非受檢異常(比如NullPointerException)和錯(cuò)誤(比如IOError)。
1.4 多線程
(1)掌握Executors可以創(chuàng)建的三種(JAVA8增加了一種,共四種)線程池的特點(diǎn)及適用范圍。
(2)掌握多線程同步機(jī)制,并熟練運(yùn)用。
1.5 Socket
(1)掌握Socket通信原理。
(2)熟練使用多線程結(jié)合Socket進(jìn)行編程。
2、Java虛擬機(jī)
2.1 JVM內(nèi)存區(qū)域劃分
(1)掌握程序計(jì)數(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)用:?jiǎn)?dòng)類加載器、擴(kuò)展類加載器、應(yīng)用程序類加載器、自定義加載器。
3、J2EE
(1) 掌握J(rèn)SP內(nèi)置對(duì)象、動(dòng)作及相關(guān)特點(diǎn)和工作原理。
(2) 掌握Servlet的特點(diǎn)和工作原理。
(3) 掌握Spring框架的IOC和AOP實(shí)現(xiàn)原理(反射和動(dòng)態(tài)代理)。
(4) 至少掌握一個(gè)MVC框架(Spring MVC,Struts等)的工作原理,并熟練運(yùn)用。
(5) 至少掌握一個(gè)ORM框架(Hibernate,MyBatis等)的工作原理,并熟練運(yùn)用。
4、數(shù)據(jù)結(jié)構(gòu)與算法
(1)掌握線性表和樹(shù)的特點(diǎn)并熟練運(yùn)用。
(2)掌握常用排序和查找算法:插入排序(直接插入排序、希爾排序)、選擇排序(直接選擇排序、堆排序)、交換排序(冒泡排序、快速排序)、歸并排序,順序查找、二分查找、哈希查找。
(3) 熟練運(yùn)用常見(jiàn)排序和查找算法思想解決編程問(wèn)題。
(4)了解幾大基本算法:貪心算法、分治策略、動(dòng)態(tài)規(guī)劃。
5、計(jì)算機(jī)網(wǎng)絡(luò)
(1)掌握網(wǎng)絡(luò)的分層結(jié)構(gòu),及每層的功能特點(diǎn)。
(2)掌握TCP/IP的通信原理(三次握手、四次揮手)
6、數(shù)據(jù)庫(kù)
(1)掌握復(fù)雜的SQL語(yǔ)句編寫(xiě)。
(2)掌握數(shù)據(jù)庫(kù)的優(yōu)化(SQL層面和表設(shè)計(jì)層面)。
(3)至少掌握一款數(shù)據(jù)庫(kù)產(chǎn)品。
(4)熟悉高并發(fā)、大數(shù)據(jù)情況下的數(shù)據(jù)庫(kù)開(kāi)發(fā)。
7、Web技術(shù)
(1)掌握AJAX的工作原理。
(2)至少熟悉一款JS框架(比如JQuery)。
8、設(shè)計(jì)模式
(1)熟悉常見(jiàn)的設(shè)計(jì)模式。
(2)會(huì)將設(shè)計(jì)模式理論應(yīng)用到實(shí)際開(kāi)發(fā)中。
9、Linux
(1)熟練運(yùn)用Linux常見(jiàn)命令。
(2)熟悉Linux操作系統(tǒng)基本概念及特點(diǎn)。
(3)熟悉Shell腳本。
10、操作系統(tǒng)
(1)掌握操作系統(tǒng)的進(jìn)程管理。
(2)了解操作系統(tǒng)的I/O。
11、正則表達(dá)式
(1)掌握常見(jiàn)正則表達(dá)式符號(hào)。
(2)熟練運(yùn)用正則表達(dá)式解決實(shí)際問(wèn)題(比如匹配電話號(hào)碼、郵箱、域名等)。
Section? 5
h5edu 的源碼
pure--響應(yīng)式css框架
Hadoop大數(shù)據(jù)
ERP系統(tǒng)開(kāi)發(fā)
linux
freemarker?
weblogic/jobss
webwhpere
webservice http://www.iteye.com/topic/1135747
bootstrap
HTML5
android
css/jslever
spring aop ssh ssm 徒手搭建
jquery源碼分析融匯
緩存 echacge
并發(fā)
頁(yè)面靜態(tài)化
UML
shell
pathy
github
網(wǎng)絡(luò)編程
ExtJS
網(wǎng)絡(luò)爬蟲(chóng)
設(shè)計(jì)模式
多線程與并發(fā)
第三方支付/登錄http://wiki.connect.qq.com/%E7%BD%91%E7%AB%99%E6%8E%A5%E5%85%A5%E6%B5%81%E7%A8%8B
=============高級(jí)工程=============
1、Core Java部分
這是最基礎(chǔ)的,對(duì)于一個(gè)java高級(jí)開(kāi)發(fā)/設(shè)計(jì)人員,你需要對(duì)這一部分達(dá)到精通的水平,重點(diǎn)內(nèi)容如下:
a.面向?qū)ο缶幊趟枷?封裝繼承多態(tài)接口)
b.字符串處理
c.java.lang包,java.util包等常用包
d.java異常處理
2、Java高級(jí)部分
a.Java I/O流
b.Java多線程技術(shù)
c.Java網(wǎng)絡(luò)編程
d.Java Swing
后兩項(xiàng)可以了解即可,如果項(xiàng)目需要可以深入研究
3、前端基本技能
* HTML + CSS網(wǎng)頁(yè)開(kāi)發(fā)
* JavaScript
* Jquery
* 瀏覽器兼容性 CSS hack(了解)
4、熟練使用JSP + Servlet進(jìn)行開(kāi)發(fā)
5、MVC設(shè)計(jì)模式,原理,以及相關(guān)框架,如Struts
6、SSH框架
7、緩存技術(shù) session & cookie
8、熟練使用一種以上Java開(kāi)發(fā)工具
Eclipse/MyEclipse/Jbuilder/Jcreator
9、熟練使用XML
JDOM w3c.dom SAX
10、Java設(shè)計(jì)模式
工廠模式,單例模式 ==
11、Java反射機(jī)制
反射的各種用法
12、了解或熟悉 C, C++, .NET
13、熟悉JDK的配置,環(huán)境變量
14、數(shù)據(jù)庫(kù)oracle必學(xué),其他最好了解一種以上(mysql,sql server,access==)
oracle:視圖,索引,存儲(chǔ)過(guò)程,觸發(fā)器,游標(biāo),包,常用函數(shù) ==
15、數(shù)據(jù)庫(kù)原理
事務(wù)的原理,鎖機(jī)制,表連接,復(fù)雜查詢語(yǔ)句(工作經(jīng)驗(yàn)),性能調(diào)優(yōu),鎖表以及解決方案==
16、JDBC,連接池
17、Ajax,反向Ajax
18、HTTP協(xié)議,request 和 response的原理,HTTP status(了解常用的),Https原理
19、熟悉Linux基本命令,使用過(guò)Linux/Unix系統(tǒng),可以編寫(xiě)shell腳本,可以在Linux上部署項(xiàng)目
20、了解windows系統(tǒng)批處理腳本bat
21、了解HTML5,最好學(xué)習(xí)過(guò)
22、熟悉一種JS框架,如Prototype
23、J2EE原理 熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==
24、熟悉ant或maven
25、熟悉一門(mén)腳本語(yǔ)言,如python ,ruby
26.了解php/ asp
27、了解ftp協(xié)議及原理
28、熟練使用Junit測(cè)試,熟悉Mockito等測(cè)試工具
29、熟悉javac,javadoc,native,native2ascii等常用命令
30、熟悉常用的排序算法,如冒泡排序,快速排序等。
31、了解Flex(不學(xué)也沒(méi)關(guān)系)
32、了解敏捷開(kāi)發(fā)模式
33、工作流workflow至少用過(guò)一種,如OSworkflow,了解原理
34、使用過(guò)VPN了解其原理
35、熟悉jstl表達(dá)式和el表達(dá)式
36、熟悉webservice,WSDL,SOAP
37、圖片處理,如圖片上傳,預(yù)覽,限制大小等,
38、版本控制工具,CVS VSS SVN
39、JSON技術(shù),JSON+AJAX
40、分頁(yè)技術(shù),最好自己實(shí)現(xiàn)過(guò)不僅僅是用過(guò)要知道原理
41、Java Mail
42、Java讀寫(xiě)txt,excel
JXL技術(shù)
43、JVM原理,JVM內(nèi)存管理,GC,Java堆棧池
44、熟練使用下面的工具:
office辦公軟件,word,excel,ppt等
plsql,sqldevelop 數(shù)據(jù)庫(kù)開(kāi)發(fā)工具
outlook大公司都用
ue編輯器
瀏覽器控制臺(tái),調(diào)試
SHH/PUTTY 遠(yuǎn)程
45、UML建模工具 Rational Rose等
46、使用log4j
47、使用過(guò)開(kāi)放API如百度地圖,騰訊街景,新浪微博等
48、頁(yè)面靜態(tài)化技術(shù)(偽靜態(tài)頁(yè)面)UrlRwriter
49、報(bào)表技術(shù),使用過(guò)報(bào)表制作工具,如水晶易表
50、定時(shí)任務(wù),如Spring batch,學(xué)會(huì)自定義batch任務(wù)(不適用第三方工具)
51、了解uuid
52、B/s 和 C/s架構(gòu)
53、正則表達(dá)式
54、了解JNDI JMS
55、ERP
56、unicode編碼,亂碼的解決
57、開(kāi)源網(wǎng)絡(luò)編輯器,如ckEditor
58、二進(jìn)制原理
59、使用過(guò),了解開(kāi)源論壇框架,如discuzz
60、GWT ,Closure框架
61.了解 大數(shù)據(jù),云計(jì)算
62、搜索引擎搜索技術(shù)
63、軟件工程,項(xiàng)目管理
1、你需要精通面向?qū)ο蠓治雠c設(shè)計(jì)(OOA/OOD)、涉及模式(GOF,J2EEDP)以及綜合模式。你應(yīng)該十分了解UML,尤其是class,object,interaction以及statediagrams。
2、你需要學(xué)習(xí)JAVA語(yǔ)言的基礎(chǔ)知識(shí)以及它的核心類庫(kù)(collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。
3、你應(yīng)該了解JVM,classloaders,classreflect,以及垃圾回收的基本工作機(jī)制等。你應(yīng)該有能力反編譯一個(gè)類文件并且明白一些基本的匯編指令。
4、如果你將要寫(xiě)客戶端程序,你需要學(xué)習(xí)WEB的小應(yīng)用程序(applet),必需掌握GUI設(shè)計(jì)的思想和方法,以及桌面程序的SWING,AWT, SWT。你還應(yīng)該對(duì)UI部件的JAVABEAN組件模式有所了解。
JAVABEANS也被應(yīng)用在JSP中以把業(yè)務(wù)邏輯從表現(xiàn)層中分離出來(lái)。
5、你需要學(xué)習(xí)java數(shù)據(jù)庫(kù)技術(shù),如JDBCAPI并且會(huì)使用至少一種persistence/ORM構(gòu)架,例如Hibernate,JDO, CocoBase,TopLink,InsideLiberator(國(guó)產(chǎn)JDO紅工廠軟件)或者iBatis。
6、你還應(yīng)該了解對(duì)象關(guān)系的阻抗失配的含義,以及它是如何影響業(yè)務(wù)對(duì)象的與關(guān)系型數(shù)據(jù)庫(kù)的交互,和它的運(yùn)行結(jié)果,還需要掌握不同的數(shù)據(jù)庫(kù)產(chǎn)品運(yùn)用,比如:oracle,mysql,mssqlserver。
7、你需要學(xué)習(xí)JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,
codesigning, digitalsignatures,cryptography,certification,Kerberos,以及其他)還有不同的安全/認(rèn)證 API,例如JAAS(JavaAuthenticationandAuthorizationService),
JCE (JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS (JavaGeneralSecurityService)。
8、你需要學(xué)習(xí)Servlets,JSP,以及JSTL(StandardTagLibraries)和可以選擇的第三方TagLibraries。
9、你需要熟悉主流的網(wǎng)頁(yè)框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他們下面的涉及模式,如MVC/MODEL2。
10、你需要學(xué)習(xí)如何使用及管理WEB服務(wù)器,例如tomcat,resin,Jrun,并且知道如何在其基礎(chǔ)上擴(kuò)展和維護(hù)WEB程序。
11、你需要學(xué)習(xí)分布式對(duì)象以及遠(yuǎn)程API,例如RMI和RMI/IIOP。?
12、你需要掌握各種流行中間件技術(shù)標(biāo)準(zhǔn)和與java結(jié)合實(shí)現(xiàn),比如Tuxedo、CROBA,當(dāng)然也包括javaEE本身。
13、你需要學(xué)習(xí)最少一種的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。
14、你應(yīng)該學(xué)習(xí)如何利用JAVAAPI和工具來(lái)構(gòu)建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),
JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。
15、你需要學(xué)習(xí)一門(mén)輕量級(jí)應(yīng)用程序框架,例如Spring,PicoContainer,Avalon,以及它們的IoC/DI風(fēng)格(setter,constructor,interfaceinjection)。
16、你需要熟悉不同的J2EE技術(shù),例如JNDI(JavaNamingandDirectoryInterface),JMS (JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService)