成為Java高手的25個(gè)學(xué)習(xí)要點(diǎn) 1. 你需要精通面向?qū)ο蠓治雠c設(shè)計(jì)(OOA/OOD)、涉及模式(GOF,J2EEDP)以及綜合模式。你應(yīng)該了解UML,尤其是class、object、interaction以及statediagrams. 2. 你需要學(xué)習(xí)Java語(yǔ)言的基礎(chǔ)知識(shí)以及它的核心類(lèi)庫(kù)(collections、serialization、streams、networking、 multithreading、reflection、event、handling、NIO、localization以及其他)。 3. 你應(yīng)該了解JVM、classloaders、classreflect以及垃圾回收的基本工作機(jī)制等。你應(yīng)該有能力反編譯一個(gè)類(lèi)文件并且明白一些基本的匯編指令。 4. 如果你將要寫(xiě)客戶(hù)端程序,你需要學(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ù),并且會(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、SQL server. 7. 你需要學(xué)習(xí)Servlets、JSP,以及JSTL(StandardTagLibraries)和可以選擇的第三方TagLibraries. 8. 你需要熟悉主流的網(wǎng)頁(yè)框架,例如JSF、Struts、Tapestry、Cocoon、WebWork,以及他們下面的涉及模式,如MVC/MODEL2. 9. 你需要學(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. 成為Java高手你需要學(xué)習(xí)最少一種的XMLAPI,例如JAXP(JavaAPIforXMLProcessing)、 JDOM(JavaforXMLDocumentObjectModel)、DOM4J或JAXR(JavaAPIforXMLRegistries)。 13. 你應(yīng)該學(xué)習(xí)如何利用Java的API和工具來(lái)構(gòu)建WebService.例如JAX-RPC(JavaAPIforXML/RPC)、 SAAJ(SOAPwithAttachmentsAPIforJava)、JAXB(JavaArchitectureforXMLBinding)、 JAXM(JavaAPIforXMLMessaging)、JAXR(JavaAPIforXMLRegistries)或者 JWSDP(JavaWebServicesDeveloperPack)。 14. 你需要學(xué)習(xí)一門(mén)輕量級(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ù),例如簇類(lèi),連接池以及分布式處理支援。你還需要了解如何在它上面封裝和配置應(yīng)用程序并且能夠監(jiān)控、調(diào)整它的性能。 18. 你需要熟悉面向方面的程序設(shè)計(jì)以及面向?qū)傩缘某绦蛟O(shè)計(jì)(這兩個(gè)都被很容易混淆的縮寫(xiě)為AOP),以及他們的主流Java規(guī)格和執(zhí)行。例如AspectJ和AspectWerkz. 19. 你需要熟悉對(duì)不同有用的API和frame work等來(lái)為你服務(wù)。例如Log4J(logging/tracing)、Quartz(scheduling)、 JGroups(networkgroupcommunication)、JCache(distributedcaching)、 Lucene(full-textsearch)、JakartaCommons等等。 20. 你應(yīng)該熟練掌握一種JavaIDE例如sunOne、netBeans、IntelliJIDEA或者Eclipse.(有些人更喜歡VI或EMACS來(lái)編寫(xiě)文件。隨便你用什么了) 21. Java(精確的說(shuō)是有些配置)是冗長(zhǎng)的,它需要很多的人工代碼(例如EJB),所以你需要熟悉代碼生成工具,例如XDoclet. 22. 你需要熟悉一種單元測(cè)試體系(JNunit),并且學(xué)習(xí)不同的生成、部署工具(Ant,Maven)。 23. 你需要熟悉一些在Java開(kāi)發(fā)中經(jīng)常用到的軟件工程過(guò)程。例如RUP(RationalUnifiedProcess)andAgilemethodologies. 24. 你還需要緊跟Java發(fā)展的步伐,比如現(xiàn)在可以深入的學(xué)習(xí)Webwork2.0. 25. 你必需要對(duì)實(shí)際項(xiàng)目的開(kāi)發(fā)流程有所了解,至少要有兩個(gè)有實(shí)際應(yīng)用價(jià)值的項(xiàng)目,而不是練習(xí)項(xiàng)目!因?yàn)楝F(xiàn)在企業(yè)看重的是你有沒(méi)有實(shí)際的開(kāi)發(fā)經(jīng)驗(yàn),真正開(kāi)發(fā)經(jīng)驗(yàn)的體現(xiàn)就是你做的項(xiàng)目,也就是有實(shí)際應(yīng)用的項(xiàng)目! 想成為Java高手不容易,大家一起奮斗,總有一天有發(fā)光的時(shí)候。 (責(zé)任編輯:代碼如詩(shī)) |