Introduction to Java, Principles, Versions, JDK, Java Compilation Process, Java
Is Platform Independent, Java as Platform
• Java is a general-purpose object-oriented computer programming language.
• It is intended to let application developers "write once, run anywhere" (WORA),
meaning that compiled Java code can run on all platforms that support Java without the
need for recompilation.
• Java applications are typically compiled to bytecode that can run on any Java virtual
machine (JVM) regardless of computer architecture.
• Java was originally developed by James Gosling at Sun Microsystems (which has since
been acquired by Oracle Corporation) and released in 1995 as a core component of Sun
Microsystems' Java platform.
There were five primary goals in the creation of the Java language:
1. It must be "simple, object-oriented and familiar".
2. It must be "robust and secure".
3. It must be "architecture-neutral and portable".
4. It must execute with "high performance".
5. It must be "interpreted, threaded, and dynamic".
Major release versions of Java, along with their release dates:
1. JDK 1.0 (January 21, 1996)
2. JDK 1.1 (February 19, 1997)
3. J2SE 1.2 (December 8, 1998)
4. J2SE 1.3 (May 8, 2000)
5. J2SE 1.4 (February 6, 2002)
6. J2SE 5.0 (September 30, 2004)
7. Java SE 6 (December 11, 2006)
8. Java SE 7 (July 28, 2011)
9. Java SE 8 (March 18, 2014)
The Java Development Kit (JDK) is an implementation of either one of the Java SE(Standard
Edition), Java EE(Enterprise Edition) or Java ME(Micro Edition) platforms released by Oracle
Corporation in the form of a binary product aimed at Java developers on Solaris, Linux, Mac
OS X or Windows. The JDK includes a private JVM and a few other resources to finish the
recipe to a Java Application.
The JDK has as its primary components a collection of programming tools, including:
• java – the loader for Java applications. This tool is an interpreter and can interpret the
class files generated by the javac compiler. Now a single launcher is used for both
development and deployment. The old deployment launcher, jre, no longer comes with
Sun JDK, and instead it has been replaced by this new java loader.
• javac – the Java compiler, which converts source code into Java bytecode
• javadoc – the documentation generator, which automatically generates documentation
from source code comments
• jar – the archiver, which packages related class libraries into a single JAR file. This tool
also helps manage JAR files.
• jdb – the debugger
• javap – the class file disassembler
And many more
Interpreter for LINUX
Interpreter for
Windows
Interpreter for
Windows
Java Source Code(For example: Abc.java)
Byte Code(For example: Abc.class)
Compile(using “javac”)
JVM(Java Virtual Machine)
Interpret the Byte code using
“java”
Machine Code Machine Code Machine Code
One design goal of Java is portability, which means that programs written for the Java platform
must run similarly on any combination of hardware and operating system with adequate runtime
support. This is achieved by compiling the Java language code to an intermediate representation
called Java bytecode, instead of directly to architecture-specific machine code. Java bytecode
instructions are analogous to machine code, but they are intended to be executed by a virtual
machine (VM) written specifically for the host hardware. End users commonly use a Java Runtime
Environment (JRE) installed on their own machine for standalone Java applications, or in a web
browser for Java applets.
The Java platform is a suite of programs that facilitate developing and running programs written in
the Java programming language. The platform is not specific to any one processor or operating
system, rather an execution engine (called a virtual machine) and a compiler with a set of libraries
are implemented for various hardware and operating systems so that Java programs can run
identically on all of them. There are multiple platforms, each targeting a different class of devices:
Java Card: A technology that allows small Java-based applications (applets) to be run securely on
smart cards and similar small-memory devices.
Java ME (Micro Edition): Specifies several different sets of libraries (known as profiles) for devices
with limited storage, display, and power capacities. Often used to develop applications for mobile
devices, PDAs, TV set-top boxes, and printers.
Java SE (Standard Edition): For general-purpose use on desktop PCs, servers and similar devices.
Java EE (Enterprise Edition): Java SE plus various APIs useful for multi-tier client–server enterprise
applications.
The Java platform consists of several programs, each of which provides a portion of its overall
capabilities. For example, the Java compiler, which converts Java source code into Java bytecode
(an intermediate language for the JVM), is provided as part of the Java Development Kit (JDK). The
Java Runtime Environment (JRE), complementing the JVM with a just-in-time (JIT) compiler,
converts intermediate bytecode into native machine code on the fly. An extensive set of libraries
are also part of the Java platform.