Become a Java expert need to pay attention to the 25 learning objectives

2010-04-02  来源:本站原创  分类:Java  人气:193 

1. You need to proficient in Object-Oriented Analysis and Design (OOA / OOD), involving patterns (GOF, J2EEDP) and the integrated model. You should be aware of UML, particularly class, object, interaction, and statediagrams.

2. You need to learn the basics of Java language and its core class libraries (collections, serialization, streams, networking,? Multithreading, reflection, event, handling, NIO, localization, and others).

3. You should be aware JVM, classloaders, classreflect, as well as the basic work of garbage collection mechanism. You should be able to decompile a class file and understand some basic assembly instructions.

4. If you want to write client programs, you need to learn a small Web application (applet), must grasp the ideas and methods of GUI design, and desktop programs SWING, AWT, SWT. You should also parts of the UI component model JavaBEAN understand. JavaBEANS also be used in JSP in to the business logic separate from the presentation layer.

5. You need to learn Java database technology, and will use at least one persistence / ORM framework, such as Hibernate, JDO,? CocoBase, TopLink, InsideLiberator (JDO red factory-made software) or iBatis.

6. You should also understand the object-relational impedance mismatch of meaning, and how it affects the business objects and relational database interaction, and its operating results, also need to master the use of different database products, such as racle, mysql, mssqlserver.

7. You need to learn Servlets, JSP, and JSTL (StandardTagLibraries) and can choose a third party TagLibraries.

8. You need to be familiar mainstream web frameworks such as JSF, Struts, Tapestry, Cocoon, WebWork, and their following related models, such as MVC/MODEL2.

9. You need to learn how to use and management of Web servers, such as tomcat, resin, Jrun, and know how to expand and maintain its base on the Web program.

10. You need to learn distributed objects and remote API, such as RMI and RMI / IIOP.

11. You need to master a variety of popular middleware technology standards and integrate with the Java implementation, such as Tuxedo, CROBA, of course, including JavaEE itself.

12. You need to learn at least one of XMLAPI, such as JAXP (JavaAPIforXMLProcessing), JDOM (JavaforXMLDocumentObjectModel), DOM4J, or JAXR (JavaAPIforXMLRegistries).
13. You should learn how to use Java-API and tools to build a WebService. For example, JAX-RPC (JavaAPIforXML / RPC), SAAJ? (SOAPwithAttachmentsAPIforJava), JAXB (JavaArchitectureforXMLBinding), JAXM (JavaAPIforXMLMessaging),? JAXR (JavaAPIforXMLRegistries), or JWSDP (JavaWebServicesDeveloperPack).

14. You need to learn a lightweight application framework, such as Spring, PicoContainer, Avalon, and their IoC / DI style (setter, constructor, interfaceinjection).

15. You need to know the different J2EE technologies such as JNDI (JavaNamingandDirectoryInterface), JMS? (JavaMessageService), JTA / JTS (JavaTransactionAPI / JavaTransactionService), JMX? (JavaManagementeXtensions), and JavaMail.

16. You need to learn Enterprise JavaBeans (EJB) components and their different modes: Stateless / StatefulSessionBeans, EntityBeans (including Bean-? ManagedPersistence [BMP] or Container-ManagedPersistence [CMP] and its EJB-QL), or? Message-DrivenBeans (MDB).

17. You need to learn how to manage and configure a J2EE application server such as WebLogic, JBoss, etc., and using its additional services, such as cluster type, connection pooling and distributed processing support. You also need to know how to above in its application package and configuration and can monitor and adjust its performance.

18. You need to be familiar aspect-oriented programming and attribute-oriented programming (both have been very easy to confuse the abbreviation for the AOP), and their mainstream Java specification and implementation. Such as AspectJ and AspectWerkz.

19. You need to be familiar with different useful API and the framework and so for you. For example Log4J (logging / tracing), Quartz? (Scheduling), JGroups (networkgroupcommunication), JCache (distributedcaching),? Lucene (full-textsearch), JakartaCommons so.
20. You should be familiar with one kind of JavaIDE such sunOne, netBeans, IntelliJIDEA or Eclipse. (Some people prefer to write papers VI or EMACS. Whatever you use what)

21.Java (accurate to say that some configuration) is long, it needs a lot of manual code (eg EJB), so you need to know code generation tools, such as XDoclet.

22. You need to know a unit test system (JNunit), and learn a different generation, deployment tools (Ant, Maven).

23. You need to know some Java developers are often used in software engineering process. Such as RUP (RationalUnifiedProcess) andAgilemethodologies.

24. You also need to keep up with the pace of Java development, such as in-depth study Webwork2.0 now

25. You will need to actually understand the project development process, at least two projects with practical applications, rather than exercise program! Because business value is that you have no real development

Experience, the real development experience is the embodiment of the projects you do, that is, a practical application of project!