1 Introduction to Java

History of Java:
Java programming language was developed by James Ghosling, Patrick Naughton, Mike Sheridan at Sun Microsystems Inc. in 1991.

The initial name was Oak but it was renamed to Java in 1995 as OAK was a registered trademark of another Tech company.

Evolution of Java:

Current stable release of Java is Java SE 8 and development of Java SE 9 is in progress and will be released soon. Below are the versions that have been released –

JDK Alpha and Beta (1995)
JDK 1.0 (23rd Jan, 1996)
JDK 1.1 (19th Feb, 1997)
J2SE 1.2 (8th Dec, 1998)
J2SE 1.3 (8th May, 2000)
J2SE 1.4 (6th Feb, 2002)
J2SE 5.0 (30th Sep, 2004): This version of Java have introduced major changes in java programming world. Some of them are:
Java Concurrency API
Var argument methods
Generics
Annotations
For each loop
Enumerations
Static import
Autoboxing and unboxing etc.
Java SE 6 (11th Dec, 2006)
Java SE 7 (28th July, 2011) : Java 7 has following new major changes:
Multi-catch block
Support of String in Switch case
Try with resources etc.
Java SE 8 (18th March, 2014) : Java 8 has introduced major programming paradigms. Some of them are:
Lambda Expressions.
Functional Interfaces
Default methods in interface.
Streams
Enhanced Security etc

Features of Java:

Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented etc.
Platform independence: Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is write-once, run-anywhere language. Once you compile java code, you can run it on any machine. For example: If you compile your code on Windows OS, you can easily run the same bytecode in linux.

Simple: Java is easy to learn. It does not include concepts of pointers and operator overloading that were available in C++.

Object Oriented: You can model everything into an object which has data and behavior. Java has incorporated various object-oriented concepts such as Abstraction, Encapsulation, Polymorphism, Modularization and inheritance.

Portable: Java byte can be portable to any platform and can be executed on any platform.

Multi-threading: Java has provided multithreading feature which will help you to execute various task in parallel. It has introduced executor framework which is more robust and easy to use.

High performance: Java can not be as fast as C and C++ as it is interpreted language but it has provided various features such as Just in time compiler to increase performance.

I think You might have got some idea about Java now.

Bitnami