Overview of Java Language


Java is a versatile, object-oriented, and platform-independent programming language developed by Sun

Microsystems (now owned by Oracle Corporation) in the mid-1990s. It has since become one of the

most popular and widely used programming languages in the world, especially for building enterprise-

level applications, mobile applications (Android), web applications, and large-scale distributed systems.


History of Java

In 1990's James Ghosling and his team tried to develop a portable application that can run on any microchip. The team choose C++ to accomplish this task. But soon they found that there are many features in c++ that prevent it from being PORTABLE. Therefore they tried to remove features that are plateform dependent. In doing so, they ended up developing a new programming language called Oak. Some say that the reason simply being that the team leader James Gosling spent most of the time under a Oak tree so they choose this name. Sun Microsystem renamed Oak to Java in 1995.


Versions of Java


Java 1.0 (January 1996): Initial release.


Java 1.1 (February 1997): Introduced inner classes and JDBC.


Java 2 (December 1998): Versions 1.2, 1.3, and 1.4 introduced Swing, Collections, and other      features.


Java 5 (September 2004): Introduced generics and enhanced for loop.


Java 6 (December 2006): Improved performance and added scripting support.


Java 7 (July 2011): Introduced try-with-resources and diamond operator.


Java 8 (March 2014): Major release with lambdas and Stream API.


Java 9 (September 2017): Introduced module system (Project Jigsaw).


Java 10 (March 2018): Modest release with local-variable type inference.


Java 11 (September 2018): First LTS under the new release model.


Java 12–17 (2019–2021): Incremental releases with various features and improvements.


Java 18 (Future): Expected to continue the evolution of the language.


Features of Java


Simple


Object-Oriented


Portable


Platform independent


Secured


Robust


Architecture neutral


Interpreted


High Performance


Multithreaded


Distributed


Dynamic


Application of Java

  • Mobile applications (specially Android apps)
  • Desktop applications
  • Web applications
  • Web servers and application servers Games
  • Database connection
  • And much, much more!