Your First Cup

Differences between Java EE and Java SE

Java technology is both a programming language and a platform. The Java programming
language is a high-level object-oriented language that has a particular syntax and style.
A Java platform is a particular environment in which Java programming language applications
run.

There are several Java platforms. Many developers, even long-time Java programming language developers,
do not understand how the different platforms relate to each other.

The Java Programming Language Platforms

There are three platforms of the Java programming language:

Java Platform, Standard Edition (Java SE)

Java Platform, Enterprise Edition (Java EE)

Java Platform, Micro Edition (Java ME)

All Java platforms consist of a Java Virtual Machine (VM) and an
application programming interface (API). The Java Virtual Machine is a program, for a particular
hardware and software platform, that runs Java applications. An API is a collection
of software components that you can use to create other software components or
applications. Each Java platform provides a virtual machine and an API, and this
allows applications written for that platform to run on any compatible system with
all the advantages of the Java programming language: platform-independence, power, stability, ease-of-development, and security.

Java SE

When most people think of the Java programming language, they think of the
Java SE API. Java SE's API provides the core functionality of the
Java programming language. It defines everything from the basic types and objects of the
Java programming language to high-level classes that are used for networking, security, database
access, graphical user interface (GUI) development, and XML parsing.

In addition to the core API, the Java SE platform consists of
a virtual machine, development tools, deployment technologies, and other class libraries and toolkits commonly
used in Java applications.

Java EE

The Java EE platform is built on top of the Java SE
platform. Java EE provides an API and runtime environment for developing and running
large-scale, multi-tiered, scalable, reliable, and secure network applications.

Java ME

The Java ME platform provides an API and a small-footprint virtual machine for
running Java programming language applications on small devices, like cellular phones. The API
is a subset of the Java SE API, along with special class libraries
useful for small device application development. Java ME applications are often clients of
Java EE application services.