- Java Real Time
- Java Foundation Classes (JFC)
- Swing—user interface
- JDBC—database
- Remote Method Invocation (RMI)
- Java for XML (JAXP)
- Java for XML Messaging (JAXM)
- Java Sound
- Java Media Framework
- Java 2D and 3D graphics
- Java Naming and Directory Interface (JNDI)
- Targets embedded devices
- Modular architecture
- Uses one configuration
- Uses one or more profiles
- Uses compact JVM
- Connected Device Configuration (CDC)
- Connection Limited Device Configuration (CLDC)
- Foundation Profile—base for other profiles
- Mobile Information Device Profile (MIDP)
- Personal Profile Specification
Features
- Object oriented
- Garbage Collection
- Class can support multiple interfaces
- Name spaces
- Multithreading
- Array of reference checks
- Strong type system
Eliminates
- Pointers
- Multiple inheritance
- Targets desktops
- Web browser plug-in
- Runs standalone Java apps
- Apps can link to J2EE apps
- Uses standard JVM
- Java Platform Debugger Architecture (JPDA)
- Java Beans
- Java Spaces
- Message Queue
- Java Server Pages
- Java Servlet
- Java Server Faces
- Web Start
- Java for the Advanced Intelligent Network (JAIN)
Ancillary Technologies
Java is utilized in a number of technologies, such as:
- Jini—spontaneous networking
- OSGi—home gateways
- Jiro—storage management
- Targets servers
- Runs server-based apps
- Apps communicate with J2ME/SE
- Supports Enterprise Java Beans
- Works with Web servers like Apache
- Base technology providing portability across platforms
- Executes applications compiled to Java byte codes
- Provides garbage collection
- C Virtual Machine—portable C JVM implementation
- Hot Spot—incremental optimizing compiler technology
Java incorporates a plethora of specifications and architectures centered around the Java programming language. The presentation above shows the major components, starting with the Java Virtual Machine (JVM), the execution engine for Java applications. Many more Java-related APIs and technologies aren't listed due to limited space.
A Sun-sponsored standards group called the Java Community Process (JCP) handles the language, APIs, and architectures. JCP involves a wide range of groups and users that propose, refine, and develop Java Specification Requests (JSRs). A JSR provides a definition for the various APIs and technologies listed above. For a complete list, go to the JCP Web site, www.jcp.org.
Java has garnered an amazing following from both developer and company standpoints. Major players like IBM and Hewlett-Packard provide a range of services and products, including their own JVMs. Java runs on all major platforms, and a number of processors execute Java byte codes directly.