Table of Contents
The Java has long been regarded as one of the most significant and popular computer languages in the world. Contrary to some other programming languages, Java has increased in popularity over time.
Java is a high-level, reliable, object-oriented, secure, and stable programming language; however, because it supports pri-mitive data types like int and char, it is not entirely object-oriented.
Java’s runtime environment, or JRE, and API make it a platform-independent language. Platform in this context refers to the hardware or software environment that supports an application. Java programmes are converted into byte code or machine-independent code during compilation. JVM (Java Virtual Machine) is used to execute this byte code. Java’s syntax is very similar to C/C++’s. Pointers and other low-level programming operations are not supported by Java. Java always writes its code in the form of classes and objects. One of the most widely used programming languages as of 2020, particularly for client-server web applications. According to estimates, there are about nine million Java developers worldwide.
Creation of Java
At Sun Microsystems Inc., James Ghosling, Patrick Naughton, and Mike Sheridan created Java in 1991. First working version development took 18 months. Since OAK was a registered trademark of another Tech company, the name Oak was changed to Java in 1995.
History of Java
Java was initially intended for interactive television, but at the time, digital cable television was a very different industry. The Green Team was the first Java team. The Green Team began working on a project to create a language for electronic devices like televisions. But programming for the internet is where it excels. After some time, Netscape technology joined Java. It was intended for Java to be “Simple, Robust, Portable, Platform-independent, Secured, High Performance, Multithreaded, Object-Oriented, Interpreted, and Dynamic” when it was created.
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||1st stable version|
|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) SupportedJPDA(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.0Upgrade 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 Null Pointer Exception. 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
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 :
- Autoboxing and autounboxing
- For-each Loop
- 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 release on March 18, 2014. Some of the major new features introduced in JAVA 8 are,
- Lambda Expressions
- New Collection Package
java.util.streamto provide Stream API.
- Enhanced Security
- Parallel Array Sorting
- The JDBC-ODBC Bridge has been removed etc.
Java SE 9 was release 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 release 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 release 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 release 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 release 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 release 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 throughout the world and in all aspects of daily life. Java is used extensively in designing hardware-controlling software components in addition to software. 3 billion mobile phones run Java, and there are more than 930 million JRE downloads each year.
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 (Java Introduction)
Following are different types of applications that we can develop using Java:
1. Standalone Applications
Applications that run on separate computer processes without adding any file processes are known as standalone applications. The standalone application, which uses AWT (Abstract Windowing Toolkit), swing,. And JavaFX and is installed on the desktop, is also referred to as a Java GUI application or a desktop application. There are buttons, menus, tables, a GUI widget toolkit, 3D graphics, etc. in these components. 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 client-server programmes that the client runs on the server. A client-server application is developed using tools like servlets, struts, JSP, Spring, hibernate, etc. Using the eCommerce platform known as Broadleaf, eCommerce applications are also created in Java.
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.