1. Language
    1. Java 1.4 and before
    2. Java 5 language changes
      1. Generics
      2. "for each" loops
      3. Autoboxing
      4. Varargs
      5. Annotations
    3. Code instrumentation
      1. AOP
      2. Lazy loading
      3. Proxies
    4. Derivatives: mvel, groovy, scala, etc.
    5. Reflection
      1. JavaBean
    6. Design Patterns
  2. Persistence
    1. JDBC2,3,4
    2. ORM (Hibernate/JPA, toplink...)
  3. Technology Stacks
    1. Apache
    2. Springsource
    3. JBoss
    4. Sun
    5. Oracle
  4. Enterprise Architecture
    1. Container
      1. EJB+Web: JBoss, WebLogic, WebSphere, GlassFish
      2. Web: Tomcat, Apache
      3. OSGI: Felix, Equinox
      4. ESB: Mule, ServiceMix, JBoss
      5. IOC: Spring
    2. Transport
      1. RMI (EJB)
      2. HTTP (WS, RS)
      3. MQ (JMS): MQ Series, ActiveMQ, HornetMQ
    3. Business Logic
      1. Rule-based: Drools, JRules
      2. Workflow/BPEL: jBPM, Ode, Camel
    4. Build & Deploy
      1. Zip-based archives: jar, war, ear
      2. Tools: ant, maven
    5. Monitoring
      1. JMX
      2. Logging: log4j, commons
  5. Native interface
    1. Shared memory
    2. I/O channels
    3. File locking
    4. JNI
    5. Character sets
    6. Sockets
  6. Web
    1. Servlets/JSP
    2. Web Services
    3. Restful Services
    4. JAXB