James Gosling developed Java at Sun Microsystems which was later subsidized by the Oracle Corporation. Java is a programming language; it was released in the year 1995. Most programming languages are platform-dependent that is they run on a particular environment say Windows XP, Vista, and UNIX, etc. If a program has been written in a certain programming language in a Windows XP environment, the same program will not run in a MAC OS. This created a credible hindrance in encoding high-level programs, as they had to be coded for different platforms individually, which required a lot of manpower, time, and funds.
To deal with such a glitch, Java was developed. It is completely platform-independent and Java programs can run on any machine as long as the Java Virtual machine (JVM) is installed in it. JVM is the interface used to make Java platform-independent. As long as a machine has JVM installed in it, it is capable of running any Java program. Java is an object-oriented programming language. Most of its syntax is similar to that of the C and C++ programming languages. The class libraries and compilers of Java had been created and developed by Sun Microsystems as well along with the introduction of this programming language in 1995.
As discussed above, one of the basic and most important features of Java is its portability. This property is achieved because, when the programs written in Java are compiled, they do not get converted into machine code. Instead, they are converted into Java byte code. This feature is unique to Java and acts as a building block towards Java’s portability property. The byte code is compiled into machine code during run time by the Just In Time compiler or JIT. This byte code is then interpreted by the JVM. The program is run on a Java Runtime Environment (JRE). JRE is used for Java applications and applets.
Java provides a series of activities including, threading, networking, and even graphical features via applets. Java programs are very slow due to the fact that they are first converted into byte code and then into machine code. They also require a lot of storage memory space. The speed of Java programs has been increased to great lengths with the use of JIT. A few platforms have microcontrollers in their hardware systems. These microcontrollers are capable of running a Java program without the presence of an interface. That is they do not require JVM in order to run programs written in Java.
Memory management is another feature of Java that has helped in popularizing this programming language. The garbage collector in Java is responsible for managing memory. The garbage collector runs automatically and does not need any explicit command. Objects are created with every Java program as it is an object-oriented programming language, the garbage collector frees the memory from objects which are not required or which will not be required. In order to check whether an object is required or not its recent references are checked. The object is not being referenced anymore. Then it is free to be removed or taken up by the garbage collector. Sometimes these might lead to deletion or freeing of objects that might be required at a later stage. The memory management feature of Java frees the programmers from manually removing the unwanted objects and dealing with memory management.