Differences and relation between 4 Java Programming Language Platforms > Java SE/ J2SE - Standard Edition, Java EE/ J2EE - Enterprise Edition, Java ME/ J2ME - Micro Edition, JavaFX

The Java programming language 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. I have seen many experienced developers getting confused to differentiate between different java platforms.

There are 4 Java Programming Language Platforms >
  1. Java SE/ J2SE - Java Standard Edition
  2. Java EE/ J2EE - Java Enterprise Edition
  3. Java ME/ J2ME - Java Micro Edition
  4. JavaFX

All the Java platforms consist of a JVM and API’s (application programming interface).
The JVM is available for different hardware and software platforms that runs Java technology applications.
An API is a collection of software components that can be used for creating other software components or applications.

1) Java SE/ J2SE - Java Standard Edition

J2SE's API provides the core functionality of the Java programming language.
J2SE platform is widely used for development and deployment of portable applications for >
  • desktop and
  • server environments.

J2SE defines >
  • basic data types,
  • objects of the Java programming language,
  • high-level classes in java which are used for networking,
  • GUI - (graphical user interface) development,
  • security,
  • database access, and
  • XML parsing.

In addition to core java API’s, J2SE platform consists of >
  • JVM,
  • deployment technologies,
  • development tools,
  • few other java class libraries and
  • toolkits commonly used in Java technology applications.

Example of J2SE implementation >

2) Java EE/ J2EE - Java Enterprise Edition

The J2EE platform is built on top of J2SE platform.

J2EE API’s are capable of >
  • handling large scale applications,
  • handling multi-tiered applications,
  • providing load balancing,
  • providing high Security and
  • providing clustered environment.

Example of J2EE platform technologies >

A few of J2EE API's (like XML API) have been included J2SE 1.4 and are now considered standard API’s.

3) Java ME/ J2ME - Java Micro Edition

Java ME/ J2ME is a platform used for creating mobile applications. Java can be used for applications for small devices such as mobile phones.
J2ME provides JVM for java applications running on mobile phones.
Advantage of J2ME>
  • code is small in size and
  • consumes less memory

Example >
Android OS’s applications have been developed in java. Example - whatsapp, angry birds and many more.
(Android OS is linux based - Android has its own DVM(Dalvik virtual machine) which is somewhat comparable to JVM)
Compiled java code(as android application are java based) can be directly translated into Dalvik bytecodes.

Many Nokia phone series (like S40, symbian OS) and some windows mobile are totally java based phones. Applications like whatsapp and angry birds are available for these phones also.

4) JavaFX

JavaFX platform is used for creating rich internet applications(RIA) that can run across a wide variety of devices by using a lightweight user interface API.
JavaFX applications provides high performance and a modern look & feel by using hardware-accelerated graphics and media engines.
JavaFX applications may be the clients of Java EE platform services.
Now, JavaFX have been merged to Java SE 8
JavaFX Mobile was the implementation of the JavaFX platform for rich Internet applications for mobile devices.
JavaFX Script (JavaFX 1.x) applications can be used for browser or desktop.

JavaFX integration with J2ME >
By integrating JavaFX integration with J2ME, the JavaFX applications can access file system, camera, GPS, bluetooth or accelerometer of mobile.

You may like some additional information >
PersonalJava edition was used for mobile and embedded systems based on Java 1.1.8 . But now has been PersonalJava  have been discontinued permanently.

/** Copyright (c), AnkitMittal JavaMadeSoEasy.com */


Java tutorial - Advantage, Where is java used in real world, platform independent language

Must read for you :