Java is one of the world’s leading programming language. This is not only a language but also a platform. It runs its softwares on a jvm. Means, you write once your code, and run into multiple platforms. When compiled, a java source code transforms into byte codes instead of raw binary files. The jvm, runs this byte codes in a virtualized way. The OOP concept in Java is almost perfect. And the syntax is beautiful and well organized.
Origin
Java was originally developed by James Goslings for Sun Microsystems in 1995. Later on it was bought by Oracle. At present, oracle manages the updates. And maintains the java platform.
Editions
There are multiple editions of Java based on different applications. The major three editions are
- Standard Edition: Java SE; Used for standard applications.
- Enterprise Edition: Jave EE; Used for enterprise applications.
- Micro Edition: Jave ME; Used for mobile devices.
Runtime
The JVM stands for Java Virtual Machine. Basically this software runs the compiled byte codes. The JVM is actually a virtual machine. And when we ran same java software on different platforms, this jvm takes care of internal things. However, we do not install the jvm separately. Instead, we install the JRE for most common uses. There’s also JDK (Java Development Kit), where the source code of the Java libraries is also provided. The Standard libraries provides many libraries to quickly get started in developing. Java provide libraries on graphics, threading, networking, file system handling etc.
Performance
When considering performance, Java is a little bit slower than the C/C++. And it also consumes much memory. There is a Garbage Collector known as GC, which collects unused components and cleans the memory gradually. However, when developing applications, we must keep in mind that, the platform should have enough memory.
Usage
There are many popular software written in Java. For example: Cassandra, Elastic Search etc. They native language for android development is Java. There also applications in Artificial Intelligence and Machine Learning in Java.