Java is a popular and powerful programming language, created in 1995.
It is owned by
Oracle
The programming language Java was developed by James Gosling and his
team at Sun Microsystems in 1995.
Initially the goal was to build a platform independent language for embedded
devices such as set-top boxes and televisions.
After exploring C++ (which proved too heavy and too closely tied to platform
dependencies), the team embarked on an entirely new project code named the
“Green Project”.
Naming of Java:
The project first used the name “Green” (internally “Green talk” with extension
.gt), then was renamed “Oak” (inspired by an oak tree outside Gosling’s office).
When Sun attempted to trademark “Oak,” they discovered it was already claimed
by Oak Technologies, so a further rename was needed.
In an interesting session guided by a naming consultant, the team generated
dozens of candidate names. The name “Java” (after the Indonesian coffee bean)
emerged as the one that cleared legal review. Although Gosling’s preferred name
was “Lyric” and the team initially favored “Silk,” “Java” became the official
name.
Why Use Java?
Java works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc.)
It is one of the most popular programming languages in the world
It has a large demand in the current job market
It is easy to learn and simple to use
It is open-source and free
It is secure, fast and powerful
It has huge community support (tens of millions of developers)
Java is an object oriented language which gives a clear structure to programs and
allows code to be reused called as WORA (Write Ones Runs Anywhere),
lowering development costs
As Java is close to C++ and C#, it makes it easy for programmers to switch to Java
or vice versa
Mobile applications (specially Android apps)
Desktop applications
Web applications
Web servers and application servers
Games
Database connection
And much, much more!
Java is a high-level, object-oriented programming language It is mostly used for
building desktop applications, web applications, Android apps and enterprise
systems.
Since the first public release of JDK (Java Development Kit) 1.0, Java has undergone
continual revision via the Java Community Process (JCP).
History of Java Versions
Release
Version Date Major Changes
JDK 1.0 Jan 1996 First official release of Java.
JDK 1.1 Feb 1997 Added inner classes, JavaBeans, JDBC, RMI.
J2SE 1.2 Dec 1998 Collections Framework, Swing GUI toolkit, JIT compiler.
J2SE 1.3 May 2000 HotSpot JVM, JNDI, Proxy classes.
J2SE 1.4 Feb 2002 Assert keyword, regex, NIO improvements.
Java SE 5.0 Sep 2004 Generics, enhanced-for loop, autoboxing, annotations.
Java SE 6 Dec 2006 Scripting support, JDBC 4.0, pluggable annotations.
Java SE 7 Jul 2011 Try-with-resources, binary literals, strings in switch.
Java SE 8 Mar 2014 Lambda expressions, Stream API, new Date-Time API.
Java SE 9 Sep 2017 Module system (Project Jigsaw).
Local-variable type inference (var), performance
Mar 2018
Java SE 10 enhancements.
Java SE 11
Sep 2018 HTTP Client API, TLS 1.3, Flight Recorder.
(LTS)
Java SE 12 Mar 2019 Switch expressions (preview), JVM GC improvements.
Java SE 13 Sep 2019 Text blocks, improved switch expressions.
Java SE 14 Mar 2020 Records (preview), pattern-matching
Release
Version Date Major Changes
for instanceof (preview).
Sealed classes (preview), hidden classes, Foreign-Function
Sep 2020
Java SE 15 & Memory API (incubator).
Finalised records and pattern matching for switch
Mar 2021
Java SE 16 (preview).
Java SE 17
Sep 2021 Finalised sealed classes, improved rendering on macOS.
(LTS)
Java SE 18 Mar 2022 Further language and library enhancements.
Java SE 20 Mar 2023 Incubator/preview features, part of rapid-release cadence.
Java SE 21
Sep 2023 Several previewed features from earlier versions matured.
(LTS)
Java SE 24 Mar 2025 Latest public release as of writing.
First java Program:
// A Java program to print Hello World!
public class HelloWorld {
public static void main(String[] args) {
[Link]("Hello World!");
Output:
Hello World!
Write code in a file like [Link].
Java Compiler "javac" compiles it into bytecode "[Link]".
JVM (Java Virtual Machine) reads the .class file and interprets the bytecode.
JVM converts bytecode to machine readable code i.e. "binary" (001001010) and then
execute the program.
Comments in Java:
Comments are the notes written inside the code to explain what we are doing. The
comment lines are not executed while we run the program.
Single-line comment
// This is a comment
Multi-line comment
/*
This is a multi-line comment.
This is useful for explaining larger sections of code.
*/
Comparison of C,C++ and Java:
Parameter C C++ Java
Programming Procedural Multi-paradigm Purely Object-Oriented
Paradigm (procedural & (OOP)
OOP)
Platform Dependency Platform-dependent Platform- Platform-independent
dependent (WORA)
Compilation/Execution Compiled to machine Compiled to Compiled to bytecode,
code machine code then interpreted by
JVM
Memory Management Manual Manual Automatic (Garbage
(malloc(), free()) (new, delete) Collector)
and smart
pointers
Pointers Heavily supported Supported Not explicitly
supported (uses
references)
Multiple Inheritance No built-in support Supported Achieved via
interfaces, not classes
Operator Overloading Not supported Supported Not supported
Primary Use Cases OS development, Game Enterprise
embedded systems, development, applications, Android
drivers high-performance apps, web apps
systems,
simulations