你需要精通面向?qū)ο蠓治雠c設(shè)計(jì) (OOA/OOD) 、涉及模式 (GOF,J2EEDP) 以及綜合模式 . 你應(yīng)該十分了解 UML, 尤其是 class,object,interaction 以及 statediagrams.
你需要學(xué)習(xí) JAVA 語(yǔ)言的基礎(chǔ)知識(shí)以及它的核心類庫(kù) (collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization, 以及其他 ).
你應(yīng)該了解 JVM,classloaders,classreflect, 以及垃圾回收的基本工作機(jī)制等 . 你應(yīng)該有能力反編譯一個(gè)類文件并且明白一些基本的匯編指令 .
如果你將要寫(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) .
你需要學(xué)習(xí) java 數(shù)據(jù)庫(kù)技術(shù) , 如 JDBCAPI 并且會(huì)使用至少一種 persistence/ORM 構(gòu)架 , 例如 Hibernate,JDO, CocoBase,TopLink,InsideLiberator( 國(guó)產(chǎn) JDO 紅工廠軟件 ) 或者 iBatis. 你還應(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.
你需要學(xué)習(xí) JAVA 的沙盒安全模式 (classloaders,bytecodeverification,managers,policyandpermissions,
codesigning, digitalsignatures,cryptography,certification,Kerberos, 以及其他 ) 還有不同的安全 / 認(rèn)證 API, 例如 JAAS(JavaAuthenticationandAuthorizationService),JCE (JavaCryptographyExtension),JSSE(JavaSecureSocketExtension), 以及 JGSS (JavaGeneralSecurityService).
你需要學(xué)習(xí) Servlets,JSP, 以及 JSTL(StandardTagLibraries) 和可以選擇的第三方 TagLibraries.
你需要熟悉主流的網(wǎng)頁(yè)框架 , 例如 JSF,Struts,Tapestry,Cocoon,WebWork, 以及他們下面的涉及模式 , 如 MVC/MODEL2.
你需要學(xué)習(xí)如何使用及管理 WEB 服務(wù)器 , 例如 tomcat,resin,Jrun, 并且知道如何在其基礎(chǔ)上擴(kuò)展和維護(hù) WEB 程序 .
你需要學(xué)習(xí)分布式對(duì)象以及遠(yuǎn)程 API, 例如 RMI 和 RMI/IIOP.
你需要掌握各種流行中間件技術(shù)標(biāo)準(zhǔn)和與 java 結(jié)合實(shí)現(xiàn) , 比如 Tuxedo 、 CROBA, 當(dāng)然也包括 javaEE 本身 .
你需要學(xué)習(xí)最少一種的 XMLAPI, 例如 JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J, 或 JAXR(JavaAPIforXMLRegistries).
你應(yīng)該學(xué)習(xí)如何利用 JAVAAPI 和工具來(lái)構(gòu)建 WebService. 例如 JAX-RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries), 或者 JWSDP(JavaWebServicesDeveloperPack).
你需要學(xué)習(xí)一門(mén)輕量級(jí)應(yīng)用程序框架 , 例如 Spring,PicoContainer,Avalon, 以及它們的 IoC/DI 風(fēng)格 (setter,constructor,interfaceinjection).
你需要熟悉不同的 J2EE 技術(shù) , 例如 JNDI(JavaNamingandDirectoryInterface),JMS (JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX (JavaManagementeXtensions), 以及 JavaMail.
你需要學(xué)習(xí)企業(yè)級(jí) JavaBeans(EJB) 以及它們的不同組件模式: Stateless/StatefulSessionBeans,EntityBeans( 包含 Bean- ManagedPersistence[BMP] 或者 Container-ManagedPersistence[CMP] 和它的 EJB-QL), 或者 Message-DrivenBeans(MDB).
你需要學(xué)習(xí)如何管理與配置一個(gè) J2EE 應(yīng)用程序服務(wù)器 , 如 WebLogic,JBoss 等 , 并且利用它的附加服務(wù) , 例如簇類 , 連接池以及分布式處理支援 . 你還需要了解如何在它上面封裝和配置應(yīng)用程序并且能夠監(jiān)控、調(diào)整它的性能 .
你需要熟悉面向方面的程序設(shè)計(jì)以及面向?qū)傩缘某绦蛟O(shè)計(jì) ( 這兩個(gè)都被很容易混淆的縮寫(xiě)為 AOP), 以及他們的主流 JAVA 規(guī)格和執(zhí)行 . 例如 AspectJ 和 AspectWerkz.
你需要熟悉對(duì)不同有用的 API 和 frame work 等來(lái)為你服務(wù) . 例如 Log4J(logging/tracing),Quartz(scheduling),JGroups (networkgroupcommunication),JCache(distributedcaching),Lucene(full-textsearch), JakartaCommons 等等 .
如果你將要對(duì)接或者正和舊的系統(tǒng)或者本地平臺(tái) , 你需要學(xué)習(xí) JNI(JavaNativeInterface)andJCA(JavaConnectorArchitecture).
你需要熟悉 JINI 技術(shù)以及與它相關(guān)的分布式系統(tǒng) , 比如掌握 CROBA.
你需要 JavaCommunityProcess(JCP) 以及他的不同 JavaSpecificationRequests(JSRs), 例如 Portlets(168),JOLAP(69),DataMiningAPI(73), 等等 .
你應(yīng)該熟練掌握一種 JAVAIDE 例如 sunOne,netBeans,IntelliJIDEA 或者 Eclipse.( 有些人更喜歡 VI 或 EMACS 來(lái)編寫(xiě)文件 . 隨便你用什么了: ))
JAVA( 精確的說(shuō)是有些配置 ) 是冗長(zhǎng)的 , 它需要很多的人工代碼 ( 例如 EJB), 所以你需要熟悉代碼生成工具 , 例如 XDoclet.
你需要熟悉一種單元測(cè)試體系 (JNunit), 并且學(xué)習(xí)不同的生成、部署工具 (Ant,Maven).
你需要熟悉一些在 JAVA 開(kāi)發(fā)中經(jīng)常用到的軟件工程過(guò)程 . 例如 RUP(RationalUnifiedProcess)andAgilemethodologies.
你需要能夠深入了解加熟練操作和配置不同的操作系統(tǒng) , 比如 GNU/linux,sunsolaris,macOS 等 , 做為跨平臺(tái)軟件的開(kāi)發(fā)者 .
你還需要緊跟 java 發(fā)展的步伐 , 比如現(xiàn)在可以深入的學(xué)習(xí) javaME, 以及各種 java 新規(guī)范 , 技術(shù)的運(yùn)用 , 如新起的 web 富客戶端技術(shù) .
你必需要對(duì) opensource 有所了解 , 因?yàn)橹辽?/span> java 的很多技術(shù)直接是靠開(kāi)源來(lái)驅(qū)動(dòng)發(fā)展的 , 如 java3D 技術(shù) .