Figure 5-1 offers an architectural overview of the Java platform version 1.4.2 packages and components.
Figure 5-1: Java Platform Version 1.4.2 Package Architectural Overview
Notice that the difference between the Software Development Kit (SDK) and the Java Runtime Environment (JRE) is the presence of the additional development tools provided by the SDK. You will use the development tools provided by the SDK in conjunction with the support provided by the JRE to create and run your Java programs.
In addition to the Java HotSpot Virtual Machine, the client and server VM compilers, and the development tools of the SDK, the packages shown in light-grey and the classes they contain will be used frequently throughout this book. These include javax.swing, java.awt, java.applet, java.rmi, java.sql (JDBC), java.math, java.text, java.lang, java.util, java.io, and java.net
The Java Native Interface (JNI) isn’t a package per se; rather, it’s a mechanism Java provides that enables you to write methods in programming languages like C or C++ and call them from your Java programs.
Your best source for detailed information regarding all the packages of the Java Platform API is Sun’s Java website: [java.sun.com] Figure 5-2 shows a screen shot from the Java 2 API specification page.
Figure 5-2: Java 2 Platform API Version 1.4.2 Specification Page
To obtain detailed information about the classes in a particular package simply click the package name link. Figure 5-3 shows a partial listing of the interfaces and classes of the java.lang package.
Figure 5-3: Partial Listing For java.lang Package
To drill down for more detailed information relating to a specific interface or class in a package click the class link. Figure 5-4 shows detailed information for the java.lang.String class.
Figure 5-4: Detailed Information For java.lang.String class
The class detail page provides valuable information about inheritance hierarchy, usage examples, and constructor, method, and attribute indexes.