Java Categories/Platforms/Editions
Tags: java, beginners, discuss, codenewbie
Published: 2021-05-24 15:31:18

Hello All👋 I hope you all are doing well. My last article ***[Java Distribution](https://dev.to/ritvikdubey27/java-distribution-5bkk)*** got much love from you guys, so here is my another short and informative article. This article is about **Java Categories** also called **Java Platforms** or **Java Editions**.

# Let's begin...
## What is Java Platform?
Java is a programming language and a platform.  A Java platform is a particular environment in which Java programming language applications run. Java comes up with different platforms for developing specific kinds of applications. Each Java platform provides a virtual machine and an API. This allows applications written for that platform to run on any compatible system with all the advantages of the Java programming language.

> ***Java platform-independence:-***
*Unlike other programming languages Java is not compiled into platform specific machine code, rather into platform independent byte code.*
![byteCode2.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1621772105983/xopSSHeGFP.jpeg)
*This byte code is distributed and this code is interpreted by Java Virtual Machine (JVM) which is different for different Operating System (platform). This is the platform-independence of Java which means Java application can run on any platform i.e, on any Operating System.*
#### Bonus:-
*1. Java is platform independent but Java Virtual Machine (JVM) is not platform independent.*
*2. Byte code is a combination of alpha numeric and assembly code that is recognized by JVM and it is light weight and virus-free code.*

## Different Java Platforms
#### Java is mainly divide into Four Platforms :-
![javaPlatforms.jpg](https://cdn.hashnode.com/res/hashnode/image/upload/v1621781546487/GcWNhjyl5.jpeg)
1. Java platform, Standard Edition (Java SE)
2. Java platform, Enterprise Edition (Java EE)
3. Java platform, Micro Edition (Java ME)
4. JavaFX

**Java platform, Standard Edition (Java SE):-** It most commonly offers core functionality of Java programming language. It is the minimum requirement to run a Java application. It uses Java programming language to develop stand-alone applications. Stand-alone applications run without interacting with other devices over the Internet or on any other medium. This application can be used by a single person at a time. Comparatively to other types of Java based applications, stand-alone applications are faster to access. It provides a foundation for building and deploying network-centric enterprise applications.

**Java platform, Enterprise Edition (Java EE):-** It is based on Java SE specification. It is mainly used for developing web & enterprise applications. It was created to extend the Java SE by adding a set of specifications that define capabilities commonly used by enterprise applications. It provides an API and runtime environment for developing and running large-scale, multi-tiered, scalable, portable, reliable, and secure network applications. It supports EJB architecture-based components. It provides functionalities like web applications, servlets, etc. 
>*When an application requires services such as transaction management, web containers, or security, you can either add the necessary Java extensions to the Java SE platform or change over to a full Java EE application server.*

**Java platform, Micro Edition (Java ME):-** It uses the Java programming language and provides APIs to develop Mobile applications. It is mostly used to develop mobile applications. This API is a subset of the Java SE API, along with special class libraries useful for small device application development. Applications which are developed on Java ME are portable and can run across various devices. It provides functionalities such as networking, communication with native operating systems of mobile devices. These applications are often clients of Java EE platform services.

**JavaFX :-** It is used to develop Desktop applications as well as Rich Internet Applications.  It uses a lightweight user-interfaces API. These applications can run on multiple platforms including Web, Mobile and Desktops. It is intended to replace swing in Java applications as a GUI framework. However, It provides more functionalities than swing. JavaFX applications use hardware-accelerated graphics and media engines to take advantage of higher-performance clients and a modern look-and-feel. It provides a rich set of API's to develop GUI applications. These applications can be clients of Java EE platform services.

>*All three, Java platform, Standard Edition (Java SE), Java platform, Enterprise Edition (Java EE) and Java platform, Micro Edition (Java ME) formerly known as Java 2 platform, Standard Edition (J2SE), Java 2 platform, Enterprise Edition (J2EE) and Java 2 platform, Micro Edition (J2ME) respectively from version 1.2, until the name was changed in version 1.5. New name of Java platform, Enterprise Edition (Java EE) is Jakarta EE.*

### Okay so that's enough for now, follow my this journey to learn more about Java.
#### *Thank you for reading.*
#### *Please share your thoughts about it and correct me if I'm wrong.*
#### *I hope you liked it and found it helpful.*
#### ***Cover:- [Rajat Gour](https://twitter.com/rajatgour20)***
#### *Connect with me on [Twitter](https://twitter.com/ritvikdubey27?s=09) or [LinkedIn](https://www.linkedin.com/in/ritvik-dubey-3bbb22169)*
#### *My personal blog [blog.ritvikdubey.com](https://blog.ritvikdubey.com/)*