<img src="http://m.bullseyehunting.com/file/upload/202305/26/014222501.png" title="Java高手是怎樣煉成的?"Java高手是怎樣煉成的?】" alt="【Java高手是怎樣煉成的?】">
Java高手是怎么煉成的,你猜。
他們說當(dāng)你精通這25個(gè)學(xué)習(xí)點(diǎn),一切都水到渠成了。
01
你需要精通面向?qū)ο蠓治雠c設(shè)計(jì)(OOA/OOD)、涉及模式(GOF,J2EEDP)以及綜合模式。你應(yīng)該了解UML,尤其是class、object、interaction以及statediagrams。
02
你需要學(xué)習(xí)Java語言的基礎(chǔ)知識(shí)以及它的核心類庫(collections、serialization、streams、networking、multithreading、reflection、event、handling、NIO、localization以及其他)。
03
你應(yīng)該了解JVM、classloaders、classreflect以及垃圾回收的基本工作機(jī)制等。你應(yīng)該有能力反編譯一個(gè)類文件并且明白一些基本的匯編指令。
04
如果你將要寫客戶端程序,你需要學(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)層中分離出來。
05
你需要學(xué)習(xí)Java數(shù)據(jù)庫技術(shù),并且會(huì)使用至少一種persistence/ORM構(gòu)架,例如hibernate、JDO、Cocobase、Toplink、InsideLiberator(國產(chǎn)JDO紅工廠軟件)或者iBatis。
06
你還應(yīng)該了解對(duì)象關(guān)系的阻抗失配的含義以及它是如何影響業(yè)務(wù)對(duì)象與關(guān)系型數(shù)據(jù)庫的交互,和它的運(yùn)行結(jié)果。還需要掌握不同的數(shù)據(jù)庫產(chǎn)品運(yùn)用,比如Oracle、MySQL、SQL
server。
07
你需要學(xué)習(xí)Servlets、JSP,以及JSTL(StandardTagLibraries)和可以選擇的第三方TagLibraries。
08
你需要熟悉主流的網(wǎng)頁框架,例如JSF、Struts、Tapestry、Cocoon、WebWork,以及他們下面的涉及模式,如MVC/MODEL2。
09
你需要學(xué)習(xí)如何使用及管理Web服務(wù)器,例如tomcat、resin、Jrun,并且知道如何在其基礎(chǔ)上擴(kuò)展和維護(hù)Web程序。
10
你需要學(xué)習(xí)分布式對(duì)象以及遠(yuǎn)程API,例如RMI和RMI/IIOP。
11
你需要掌握各種流行中間件技術(shù)標(biāo)準(zhǔn)和與Java結(jié)合實(shí)現(xiàn),比如Tuxedo、CROBA,當(dāng)然也包括JavaEE本身。
12
你需要學(xué)習(xí)最少一種的XMLAPI,JAXP(JavaAPIforXMLProcessing)、JDOM(JavaforXMLdocumentObjectModel)、DOM4J或JAXR(JavaAPIforXMLRegistries)。
13
你應(yīng)該學(xué)習(xí)如何利用Java的API和工具來構(gòu)建WebService。例如JAX-RPC(JavaAPIforXML/RPC)、SAAJ(SOAPwithAttachmentsAPIforJava)、JAXB(JavaArchitectureforXMLBinding)、JAXM(JavaAPIforXMLMessaging)、JAXR(JavaAPIforXMLRegistries)或者JWSDP(JavaWebServicesDeveloperPack)。
14
你需要學(xué)習(xí)一門輕量級(jí)應(yīng)用程序框架,例如spring、PicoContainer、Avalon,以及它們的IoC/DI風(fēng)格(setter,constructor,interfaceinjection)。
15
你需要熟悉不同的J2EE技術(shù),例如JNDI(JavaNamingandDirectoryInterface)、JMS(JavaMessageService)、JTA/JTS(JavaTransactionAPI/JavaTransactionService)、JMX(JavaManagementeXtensions),以及JavaMail。
16
你需要學(xué)習(xí)企業(yè)級(jí)JavaBeans(EJB)以及它們的不同組件模式:Stateless/StatefulSessionBeans、EntityBeans(包含Bean-ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者M(jìn)essage-DrivenBeans(MDB)。
17
你需要學(xué)習(xí)如何管理與配置一個(gè)J2EE應(yīng)用程序服務(wù)器,如WebLogic、JBoss等,并且利用它的附加服務(wù),例如簇類,連接池以及分布式處理支援。你還需要了解如何在它上面封裝和配置應(yīng)用程序并且能夠監(jiān)控、調(diào)整它的性能。
18
你需要熟悉面向方面的程序設(shè)計(jì)以及面向?qū)傩缘某绦蛟O(shè)計(jì)(這兩個(gè)都被很容易混淆的縮寫為AOP),以及他們的主流Java規(guī)格和執(zhí)行。例如AspectJ和AspectWerkz。
19
你需要熟悉對(duì)不同有用的API和frame
work等來為你服務(wù)。例如Log4J(logging/tracing),Quartz(scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching),Lucene(full-textsearch),JakartaCommons等等。
20
你應(yīng)該熟練掌握一種JavaIDE例如sunOne、netBeans、IntelliJIDEA或者Eclipse。(有些人更喜歡VI或EMACS來編寫文件。隨便你用什么了)
21
Java(精確的說是有些配置)是冗長的,它需要很多的人工代碼(例如EJB),所以你需要熟悉代碼生成工具,例如XDoclet。
22
你需要熟悉一種單元測(cè)試體系(JNunit),并且學(xué)習(xí)不同的生成、部署工具(Ant,Maven)。
23
你需要熟悉一些在Java開發(fā)中經(jīng)常用到的軟件工程過程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。
24
你還需要緊跟Java發(fā)展的步伐,比如現(xiàn)在可以深入的學(xué)習(xí)Webwork2.0。
25
你必需要對(duì)實(shí)際項(xiàng)目的開發(fā)流程有所了解,至少要有兩個(gè)有實(shí)際應(yīng)用價(jià)值的項(xiàng)目,而不是練習(xí)項(xiàng)目!因?yàn)楝F(xiàn)在企業(yè)看重的是你有沒有實(shí)際的開發(fā)經(jīng)驗(yàn),真正開發(fā)經(jīng)驗(yàn)的體現(xiàn)就是你做的項(xiàng)目,也就是有實(shí)際應(yīng)用的項(xiàng)目!