Java Introduction
What is Java?
Java is a high-level, class-based, object-oriented programming language designed to be portable, secure, and maintainable for long-term software development.
It follows the principle:
Write Once, Run Anywhere (WORA)
Java code is compiled into bytecode, which runs on the Java Virtual Machine (JVM) — making it platform-independent.
Key Characteristics
- Platform independent: Java code compiles into bytecode that runs on the JVM, so the same program can run on Windows, Linux, or macOS.
- Strongly typed + OOP-friendly: Encourages clear structure (classes, interfaces) and safer refactoring.
- Rich ecosystem: Mature standard library + huge community + frameworks (e.g., Spring) and build tools (Maven/Gradle).
- Performance: The JVM uses JIT compilation to optimize frequently executed code paths.
Quick Facts
- Developed by Sun Microsystems (1995) (now Oracle)
- Syntax inspired by C/C++, but safer
- Widely used in:
- Backend development
- Android apps
- Enterprise systems
- Cloud & distributed systems
Why We Need Java?
Java became popular because it solves major problems developers faced earlier:
Reasons to Use Java
- Platform Independence No need to rewrite code for different systems
- Stability & Reliability Used in banking, enterprise, and critical systems
- Security Built-in features like bytecode verification and sandboxing
- Large Ecosystem Frameworks like Spring, Hibernate
- Scalability Handles large applications easily
- Job Opportunities Huge demand in backend and enterprise development
History of Java
Java was created by James Gosling and his team at Sun Microsystems.
Timeline
- 1991 → Project started (called Oak)
- 1995 → Renamed to Java and officially released
- 1996 → First public version (JDK 1.0)
- 2009 → Oracle acquired Sun Microsystems
- 2014 → Java 8 (most popular release)
- 2021+ → Modern LTS versions (Java 17, 21)
Why Learn Java?
-
Widely Used and In-Demand Java is used by millions of developers and powers everything from enterprise applications to Android apps and web services. Top companies like Google, Netflix, and Amazon rely on it.
-
Beginner-Friendly, Yet Powerful Java has a clean, readable syntax and a vast ecosystem of tools and libraries. It’s great for beginners but also scales well for advanced projects.
-
Write Once, Run Anywhere Java is platform-independent. You write code once and run it on any system with a Java Virtual Machine (JVM).
-
Robust and Secure With strong memory management, type safety, and built-in security features, Java is ideal for building reliable and secure applications.
-
Career and Job Opportunities Java developers are always in demand — especially in backend development, enterprise systems, and Android app development.
-
Strong Foundation for Other Tech Learning Java helps you understand key concepts like OOP (Object-Oriented Programming), multithreading, and data structures — which are useful in many other languages too.
Types of Java Applications
Java is used to build different types of applications:
- Web Applications: Backend APIs using frameworks like Spring Boot Example: E-commerce websites
- Mobile Applications: Android apps (Java/Kotlin)
- Enterprise Applications: Banking systems, ERP, CRM Highly scalable and secure
- Cloud-Based Applications: Microservices and distributed systems
- Big Data Applications: Tools like Hadoop, Spark run on JVM
- Desktop Applications: GUI apps using JavaFX, Swing
Java Versions History
| Version | Release Date | Key Features / Notes |
|---|---|---|
| JDK 1.0 | January 1996 | Initial release — basic core API and JVM |
| JDK 1.1 | February 1997 | Inner classes, JDBC, RMI, JavaBeans |
| J2SE 1.2 | December 1998 | Collections framework, Swing, JIT compiler |
| J2SE 1.3 | May 2000 | HotSpot JVM, RMI over IIOP |
| J2SE 1.4 | February 2002 | assert keyword, NIO, logging API, XML parsing |
| Java SE 5 | September 2004 | Generics, enhanced for-loop, annotations, enums, autoboxing |
| Java SE 6 | December 2006 | Scripting engine (JS), improvements in Web Services, JVM monitoring |
| Java SE 7 | July 2011 | try-with-resources, NIO.2, Diamond operator |
| Java SE 8 | March 2014 | Lambda expressions, Streams API, Optional, Date/Time API |
| Java SE 9 | September 2017 | JPMS (modules), JShell, improved JDK structure |
| Java SE 10 | March 2018 | var for local variable type inference |
| Java SE 11 | September 2018 | LTS version, removed JavaFX, HTTP Client API |
| Java SE 12 | March 2019 | Switch expressions (preview) |
| Java SE 13 | September 2019 | Text blocks (preview), dynamic CDS |
| Java SE 14 | March 2020 | Records (preview), instanceof pattern matching (preview) |
| Java SE 15 | September 2020 | Sealed classes (preview), hidden classes |
| Java SE 16 | March 2021 | Records and pattern matching (finalized), new memory APIs |
| Java SE 17 | September 2021 | LTS version, sealed classes, pattern matching |
| Java SE 18 | March 2022 | Simple web server, UTF-8 by default |
| Java SE 19 | September 2022 | Virtual threads (preview), structured concurrency (preview) |
| Java SE 20 | March 2023 | Continued virtual threads and pattern matching enhancements |
| Java SE 21 | September 2023 | LTS version, virtual threads, string templates, sequenced collections |
| Java SE 22 | March 2024 | Unnamed classes, class-file API improvements (preview) |
Java Program Structure
Here’s a simple Hello World program:
publicclassHelloWorld {
publicstaticvoidmain(String[]args) {
System.out.println("Hello, World!");
}
}
Explanation
- class HelloWorld → Defines a class
- main() method → Entry point of the program
- System.out.println() → Prints output
Execution Flow
- Write code →
.javafile - Compile → Bytecode (
.class) - Run using JVM