- Java is a high level programming language which can be used to create standalone, web, mobile or enterprise applications.
- It was developed by James Gosling, Patrick Naughton, Chris Warth, Ed Frank, and Mike Sheridan at Sun Microsystems.
- It was initially named as Oak. In 1995, Oak was renamed as Java.
- Java programming language helps us to create applications that can be run on multiple platforms without having to port the code and recompile. In a nutshell, Java is a portable language.
- Java is object oriented as it helps us to correlate real world object or examples to java programs
- It is known for its robustness as it avoid drawbacks in other programming languages like pointer arithmetic or memory management etc.
- It allows us to create multi-threaded applications where each thread can do separate task.
- Java was initially owned by Sun Microsystems. In 2010, Oracle acquired Sun Microsystems.
Before getting into Java tutorials, we may need to learn about JVM, JDK and JRE
What is JVM?
On compiling a Java program, we will get class file as output which consists of bytecodes. And these bytecodes are executed by java runtime system called Java Virtual Machine. It consists of class loader, security engine, bytecode verifier and garbage collector.
- Class loader helps to load all the class files that are needed for the program execution.
- Security engine helps to prevent unauthorized access into the restricted area.
- Bytecode verifier runs several test on our bytecode to find whether there is any error conditions like stack overflow, stack underflow, invalid type conversion, illegal code access etc.
- Garbage collector takes care of cleaning the unfreed memory.
What is JRE?
Java Runtime Environment which consists of JVM and Java Application Program interfaces. In other words, its the superset of JVM and it provides environment for running a Java application or program.
What is JDK?
Java development kit provides environment for developers to develop, compile and run Java application. JDK consists of both JVM and JRE. In other words, it is the superset of JRE. It provides a large set of tools like complier, interpreter, Java packages, document generator etc.