Java Introduction
Java is one of the world's most important and widely used computer languages, and it has held this distinction for many years. Unlike some other computer languages whose influence has weared with passage of time, while Java's has grown.
Java is a high level, robust, object-oriented and a secure and stable programming language but it is not a pure object-oriented language because it supports primitive data types like int, char etc.
Java is a platform-independent language because it has runtime environment i.e JRE and API. Here platform means a hardware or software environment in which anapplication runs.
Java codes are compiled into byte code or machine-independent code. This byte code is run on JVM (Java Virtual Machine).
The syntax is Java is almost the same as C/C++. But java does not support low-level programming functions like pointers. The codes in Java is always written in the form of Classes and objects.
As of 2020, Java is one of the most popular programming languages in use, especially for client-server web applications.Its has been estimated that there are around nine million Java developers inside the world.
Creation of Java
Java was developed by James Ghosling, Patrick Naughton, Mike Sheridan at Sun Microsystems Inc. in 1991. It took 18 months to develop the first working version.
The initial name was Oak but it was renamed to Java in 1995 as OAK was a registered trademark of another Tech company.
History of Java
Originally Java was designed for Interactive television, but this technology was very much advanced for the industry of digital cable television at that time. Java history was started with the Green Team. The Green Team started a project to develop a language for digital devices such as television. But it works best for internet programming. After some time Java technology was joined by Netscape.
The objective to create Java Programming Language was it should be "Simple, Robust, Portable, Platform-independent, Secured, High Performance, Multithreaded, Object-Oriented, Interpreted, and Dynamic".
Java was developed in Sun Microsystem by James Ghosling, Patrick Naughton, Mike Sheridan in 1991. It took 18 months to develop the first working version. James Ghosling is also known as the Father of Java.
Initially, Java was called "Greentalk" by James Gosling and at that time the file extension was .gt.
Later on Oak was developed as a part of the Green Team project. Oak is a symbol for strength and Oak is also a national tree in many countries like the USA, Romania etc.
Oak was renamed as Java in 1995 because Oak was already a trademark by Oak Technologies. Before selecting the Java word the team suggested many names like dynamic, revolutionary, Silk, jolt, DNA, etc.
Java is an island in Indonesia, here the first coffee was produced or we call Java coffee. Java coffee is a type of espresso bean. James gosling chose this name while having coffee near his office.
The word JAVA does not have an acronym. It is just a name.
In 1995 Java was one of the best product by the Time magazine.
Java Version History
Here we have listed down all the versions of Java along with the main features introduced in those versions.
Version Name |
Coad Name |
Release Date |
Description |
Java Alpha and Beta |
|
1995 |
- It was the 1st version but was having unstable APIs and ABIs.
- It was the 1st version but was having unstable APIs and ABIs.
|
JDK 1.0 |
Oak |
January 1996 |
|
JDK 1.1 |
|
February 1997 |
- AWT Event modelling retooling.
- Added Inner class, Java Beans, JDBC, RMI, Reflection, JIT
- Added Inner class, Java Beans, JDBC, RMI, Reflection, JIT
|
J2SE 1.2 |
Playground |
December 1998 |
- JDK replaced by J2SE.
- Support strictfp keyword.
- Swing API integrated with core classes.
- Collection framework.
|
J2SE 1.3 |
Kestrel |
May 2000 |
- HotSPot JVM included
- RMI Modified.
- JNDI(Java Naming and Directory Interface) Supported
- JPDA(Java Platform Debugger Architecture).
- Included Proxy Classes.
|
J2SE 1.4 |
Merin |
February 2002 |
- Support assert Keyword.
- Improvement in libraries.
- Support Regular expression.
- Support Exception Chaining.
- Support Exception Chaining.
- Included Java Web Start.
- Support API Preferences (java.util.prefs).
|
J2SE 5.0 |
Tiger |
September 2004 |
- Included Generics, Metadata, Autoboxing/Unboxing, Enumerations, Varargs.
- Enhanced for each loop.
- Support static imports.
|
Java SE 6 |
Mustang |
December 2006 |
- Support Win9x version.
- Support Scripting languages.
- Improved Swing performance.
- Support JDBC 4.0
- Upgrade of JAXB to 2.0.
- Improvement in GUI and JVM.
|
Java SE 7 |
Dolphine |
July 2011 |
- Support of dynamic language in JVM.
- Included 64-bit pointers.
- Support string in the switch.
- Support resource management in the try block.
- Support binary integer literals.
- Support underscore in numeric literals.
- Support multiple exceptions.
- Included I/O library.
|
Java SE 8(LTS) |
|
March 2014 |
- Support of JSR 335 and JEP 126.
- Support unsigned integer.
- Support Date and time API.
- Included JavaFX.
- Support Windows XP.
|
Java SE 9 |
|
September 2017 |
- Support multiple gigabyte heaps.
- Included garbage collector.
|
Java SE 10 |
|
March 2018 |
- Support local variables type inference.
- Support local variables type inference.
- Included Application class.
|
Java SE 11(LTS) |
|
September 2018 |
- Support bug fixes.
- Include long term support(LTS).
- Support transport layer security.
|
Java SE 12 |
|
March 2019 |
- Support JVM Constant API.
- Include CDS Archives.
|
Java SE 13 |
|
September 2019 |
- Updated Switch Expressions.
- Include Text Blocks.
- Support Legacy socket API.
|
Java SE 14 |
|
March 2020 |
- Support Event Streaming.
- Improved NullPointerException.
- Removal of the Concurrent Mark Sweep (CMS) in the garbage collector.
|
Java SE 15 |
|
September 2020 |
|
Java SE 16 |
|
March 2021 |
|
Java SE 17(LTS) |
|
September 2021 |
|
Evolution of Java
Java was initially launched as Java 1.0 but soon after its initial release, Java 1.1 was launched. Java 1.1 redefined event handling, new library elements were added.
In Java 1.2 Swing and Collection framework was added and suspend()
, resume()
and stop()
methods were deprecated from Thread class.
No major changes were made into Java 1.3 but the next release that was Java 1.4 contained several important changes. Keyword assert
, chained exceptions and channel based I/O System was introduced.
Java 1.5 was called J2SE 5, it added following major new features :
- Generics
- Annotations
- Autoboxing and autounboxing
- Enumerations
- For-each Loop
- Varargs
- Static Import
- Formatted I/O
- Concurrency utilities
Next major release was Java SE 7 which included many new changes, like :
- Now String can be used to control Switch statement.
- Multi Catch Exception
- try-with-resource statement
- Binary Integer Literals
- Underscore in numeric literals, etc.
Java SE 8 was released on March 18, 2014. Some of the major new features introduced in JAVA 8 are,
- Lambda Expressions
- New Collection Package
java.util.stream
to provide Stream API.
- Enhanced Security
- Nashorn Javascript Engine included
- Parallel Array Sorting
- The JDBC-ODBC Bridge has been removed etc.
Java SE 9 was released on September 2017. Some of the major new features introduced in JAVA 9 are,
- Platform Module System (Project Jigsaw)
- Interface Private Methods
- Try-With Resources
- Anonymous Classes
- @SafeVarargs Annotation
- Collection Factory Methods
- Process API Improvement
Java SE 10 was released on March 2018. Some of the major new features introduced in JAVA 10 are,
- Support local variables type inference.
- Support local variables type inference.
- Included Application class.
Java SE 11 was released on September 2018. Some of the major new features introduced in JAVA 11 are,
- Support bug fixes.
- Include long term support(LTS).
- Support transport layer security.
Java SE 12 was released on March 2019. Some of the major new features introduced in JAVA 12 are,
- Support JVM Constant API.
- Include CDS Archives.
Java SE 13 was released on September 2019. Some of the major new features introduced in JAVA 13 are,
- Updated Switch Expressions.
- Include Text Blocks.
- Support Legacy socket API.
Java SE 14 was released on March 2020. Some of the major new features introduced in JAVA 14 are,
- Support Event Streaming.
- Improved NullPointerException.
- Removal of the Concurrent Mark Sweep (CMS) in the garbage collector.
Application of Java
Java is widely used in every corner of world and of human life. Java is not only used in softwares but is also widely used in designing hardware controlling software components. There are more than 930 million JRE downloads each year and 3 billion mobile phones run java.
Following are some other usage of Java :
- Developing Desktop Applications
- Web Applications like Linkedin.com, Snapdeal.com etc
- Mobile Operating System like Android
- Embedded Systems
- Robotics and games etc.
Types of Java Application
Following are different types of applications that we can develop using Java:
1. Standalone Applications
Standalone applications are the application which runs on separate computer process without adding any file processes. The standalone application is also known as Java GUI Applications or Desktop Applications which uses some standard GUI components such as AWT(Abstract Windowing Toolkit), swing and JavaFX and this component are deployed to the desktop. These components have buttons, menu, tables, GUI widget toolkit, 3D graphics etc. using this component a traditional software is developed which can be installed in every machine.
Example: Media player, antivirus, Paint, POS Billing software, etc.
2. Web Applications
Web Applications are the client-server software application which is run by the client. Servlets, struts, JSP, Spring, hibernate etc. are used for the development of a client-server application. eCommerce application is also developed in java using eCommerce platform i.e Broadleaf.
Example: mail, e-commerce website, bank website etc.
3. Enterprise Application
Enterprise application is middleware applications. To use software and hardware systems technologies and services across the enterprises. It is designed for the corporate area such as banking business systems.
Example: e-commerce, accounting, banking information systems etc.
4. Mobile Application
For mobile applications, Java uses ME or J2ME framework. This framework are the cross platform that runs applications across phones and smartphones. Java provides a platform for application development in Android too.
Example: WhatsApp, Xender etc.
Download JDK
For running Java programs in your system you will have to download and install JDK kit from here (recommended Java Version is Java 11 but you can download Java 13 or Java 14).