The Java Platform - More than an OO Language

John M. Thompson


Check here for tutorials from Sun Microsystems on many of the Java Technologies.

Additional source:
Building Java Enterprise Systems with J2EE
Paul J. Perrone and Venkata "Krishna" Chaganti
Copyright 2000, Sams Publishing

Platform vs Language

Compare Java with C++ -

But C++ offers no GUI model, no Threading model, no Database Connectivity model, no Interprocess Communication model, and no Web Application architectural model.  Java provides all of these, and more.

Thus, Java, more than just a Language, is a Development Platform much like Microsoft Windows is a Platform with its GUI, Threading, Database and Interprocess Communication models.


Constituent Technologies

As the Java Platform has matured, its technologies have been partitioned into several "Editions" to aid developers and manufacturers in targeting appropriate sets of functionality.  The naming and partitioning reached a new plateau with the debut of the Java 2 Platform (technically, JDK Version 1.2)

Today, the Editions include -


Java 2 Standard Edition

Applets and Applications - Applets are Java programs downloaded over the Internet and run within an enabled web browser.  Applications run standalone, within a Java Virtual Machine on a desktop or server computer.

Java Beans - A reusable component development model with support for instantiation and management through IDEs.

java.lang and java.util Packages - Examples: Object, String, Integer, Float, Thread.  Hashtable, TimeZone, Vector.

JAR Files - Java ARchive files allow packaging of .class files and supporting content (eg. sound) in a single file based on the popular ZIP file format.

Java Foundation Classes - Includes AWT (Abstract Window Toolkit) and Swing GUI Components, Graphics and Imaging support, Drag-and Drop and Input Method Framework.

Object Serialization - Supports the encoding of objects, and the objects reachable from them, into a stream of bytes, and back again.

Collections Framework - Set, List and Map Interfaces in Hash Table, Resizeable Array, Balanced Tree and Linked List Implementations.

Networking - Classes for implementing networking applications such as Socket, ServerSocket, InetAddress.

Remote Method Invocation (RMI) - In order to match the semantics of object invocation, distributed object systems require remote method invocation. This allows method invocation on objects in a different address space, including objects hosted on other processors.

Java Native Interface - Provides binary compatibility of native method libraries across all Java virtual machine implementations on a given platform.

Java Naming and Directory Interface (JNDI)* - provides a unified interface to multiple enterprise directory and naming services.  Example: the Java Remote Method Invocation (RMI) Registry.

Java Database Connectivity (JDBC)* - An encapsulation of SQL (eg, CREATE TABLE, SELECT, INSERT, UPDATE, DELETE) with support for database connection management.

Java Sound - A new API (version 1.3) for capturing, processing, and playing back audio and MIDI (Musical Instrument Digital Interface) data.

Security - Enables flexible and extensible access control for applets, applications, beans, and servlets.

... and other pieces.


Java 2 Enterprise Edition

Enterprise Java Beans (EJB) - An API supporting creation, deployment and management of cross-platform, component-based enterprise applications within the context of existing (legacy) applications.

JavaServer Pages (JSP) - A simplified way to create dynamic web content while separating Presentation from Business Logic.  Basically, HTML with additional tags supporting embedded Java (eg, calls to Java Beans).

Java Servlets - Provides web app developers with a platform-independent mechanism for extending web server functionality.  Offered as a replacement for "traditional" CGI solutions.

Java Message Service (JMS) - A standard Java API for enterprise messaging services like reliable queuing, publish and subscribe implementation, and support for push/pull technologies.

Java Transaction API (JTA) - A high-level transaction management specification for resource managers and transactional applications in distributed systems.

Java Transaction Service (JTS) - Ensures interoperability with transaction resources (3rd-party transactional application programs, resource managers, transaction processing monitors and transaction managers) though an open, standard access to these transaction resources.

JavaMail - A platform- and protocol-independent framework for Java-based mail and messaging applications.

... and other pieces.


Java 2 Micro Edition

J2ME addresses the consumer space, from smart cards and pagers, up to appliances nearing the power of a computer such as the Television Set-top box.  It represents portions of the Java 2 Standard Edition altered for restricted environments.



Originals are accessible from

Copyright 2001
by John M. Thompson
Boulder, Colorado USA
A limited right to copy this page for
individual (non-commercial)
educational use only
is hereby granted.