This article’s main focus is to inform the readers about Java’s different versions and how are they different.
First of all, let’s understand what Java is really about. Java is basically a general purpose, high level programming language, which is widely used for development of application softwares.
It’s used in a wide variety of platforms such as mobile phones, embedded systems, web pages, servers and much more. Due to its cross platform compatibility, it makes it ideal for working across platforms. According to Oracle, there are about 9 million Java developers till date.
- Simple, Object-oriented and familiar
- Robust and Secure
- Architecture-neutral and portable
- High performance
- Firstly java is compiled to bytecode, which then either compiled, or interpreted depending on mood of JIT.
Some interesting facts about Java-
- Java’s old name was OAK (because of the Oak tree growing outside developer’s house).
- Coffee Mug was deployed as Java’s symbol, because the developers of Java drank and loved coffee.
- It was originally developed by Sun Microsystems, but later bought by Oracle.
- First major JDK (Java Development Kit) 1.0 was released on January 21, 1996.
- Android, one of the most famous mobile OS, is based on Java.(Android SDK also uses Java)
- Java has no concept of pointers unlike its predecessors.
- Java is still no. 2 development platform worldwide
- There are currently 9 million Java developers, all around the globe.
Now, let’s understand about different editions of Java platform-
- J2SE(Java Platform, Standard Edition)
Also known as Core Java, this is the most basic and standard version of Java.It’s the purest form of Java, a basic foundation for all other editions.
It consists of a wide variety of general purpose API’s (like java.lang, java.util) as well as many special purpose APIs
J2SE is mainly used to create applications for Desktop environment.
It consist all the basics of Java the language, variables, primitive data types, Arrays, Streams, Strings Java Database Connectivity(JDBC) and much more. This is the standard, from which all other editions came out, according to the needs of the time.
The famous JVM of Java, the heart of Java development, was also given by this edition only.It’s because of this feature, that Java has such a wide usage.
- J2ME(Java Platform, Micro Edition)
This version of Java is mainly concentrated for the applications running on embedded systems, mobiles and small devices.(which was a constraint before it’s development)
Constraints included limited processing power, battery limitation, small display etc.
Also, the J2ME apps help in using web compression technologies, which in turn, reduce network usage, and hence cheap internet accessibility.
J2ME uses many libraries and API’s of J2SE, as well as, many of it’s own.
The basic aim of this edition was to work on mobiles, wireless devices, set top boxes etc.
Old Nokia phones, which used Symbian OS, used this technology.
Most of the apps, developed for the phones(prior to smartphones era), were built on J2ME platform only(the .jar apps on Nokia app store).
- J2EE(Java Platform, Enterprise Edition)
The Enterprise version of Java has a much larger usage of Java, like development of web services, networking, server side scripting and other various web based applications.
J2EE is a community driven edition, i.e. there is a lot of continuous contributions from industry experts, Java developers and other open source organizations.
J2EE uses many components of J2SE, as well as, has many new features of it’s own like Servlets, JavaBeans, Java Message Services, adding a whole new functionalities to the language.
There are also many languages like .net and php, which can do that work, but what distinguishes it from other languages is the versatility, compatibility and security features, which are not that much prominent in other languages.
Nowadays, developers are going more towards this edition, as it more versatile and web friendly that it’s other counterparts.
Apart from these three versions, there was another Java version, released Java Card.
This edition was targeted, to run applets smoothly and securely on smart cards and similar technology.
Portability and security was its main features.
JavaFX is another such edition of Java technology, which is now merged with J2SE 8.It is mainly used, to create rich GUI (Graphical User Interface) in Java apps.
It replaces Swings (in J2SE), with itself as the standard GUI library.
It is supported by both Desktop environment as well as web browsers.
PersonalJava was another edition, which was not deployed much, as its function was fulfilled by further versions of J2ME. Made to support World Wide Web (and Java applets) and consumer electronics.
PersonalJava was also used for embedded systems and mobile. But, it was discontinued in its earlier stages.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
A computer fanatic, Kunal Tagra, is a 3rd year student at Maharaja Agrasen Insitute of Technology, Delhi. He has a keen interest in upcoming technologies and software development. He is also passionate about music and also enjoys teaching/learning new things .You can reach him at https://www.linkedin.com/pub/kunal-tagra/57/a25/783
If you also wish to showcase your blog here,please see GBlog for guest blog writing on GeeksforGeeks.
- Web 1.0, Web 2.0 and Web 3.0 with their difference
- Difference between SSH and Telnet
- Windows 10 –Feel the Difference
- What is the Difference between Website and Web Portal
- Difference between Machine learning and Artificial Intelligence
- Difference between FAT32, exFAT, and NTFS File System
- Difference between Structured, Semi-structured and Unstructured data
- Difference between Data Scientist, Data Engineer, Data Analyst
- Getting Started with Cross-Platform Mobile Application using Flutter
- Getting started with React Native? Read this first !
- Pros and Cons of URL Shorteners
- URL Shorteners and its API in Python | Set-2
- URL Shorteners and its API in Python | Set-1
- Embedding Tomcat Server in Maven Project
Improved By : Nandu1336