OVERVIEW OF JAVA
• Java is a high-level programming language was originally
developed by Sun Microsystems, which was initiated by James
Gosling and released in 1995 as core component of Sun
Microsystems’s Java platform (Java 1.0 [J2SE]).
• Initially they called it “oak "after seeing an oak tree
But after some time, it was renamed to Java based on the name
of coffee
• With the advancement of Java and its widespread popularity,
multiple configurations were built to suite various types of
platforms.
Ex:1) J2EE for Enterprise Applications,
2)J2ME for Mobile Applications.
• Java comes in two variants-
• A)Java Runtime Engine
• B)Java Software Development Kit
• JRE is essentially runtime environment consisting of bytecode
interpreter,JVM ands set of basic libraries to support Java Language
feature
• The Java SDK is further bundled into two separate packages
• I)Java 2Standard Edition(J2SE)—supports most of the features and
libraries required to build a full feature Java application
• 2)Java2Enterprise edition(J2EE)—provides advance feature like
native interface,Java Server Page etc.
JAVA IS
• Simple similar to C/C++
• Scalable i.e easy to integrate
• Object oriented i.e able to program real life
complexities
• Strongly typed language i.e it clearly distinguishes between the
compile time errors that must be detected at compile time and those
that occurs at runtime
• Java is both COMPILED as well as INTERPRETED
i.e
Java
compiled
“Java Byte Code”(an intermediate code)
run interpreter
execute a program
• Java is guaranteed to be Write Once, Run Anywhere
Basic features of
java(Buzzwords)
• Object Oriented : In java everything is an Object. Java can be easily
extended since it is based on the Object model.
• Platform independent: Unlike many other programming languages
including C and C++ when Java is compiled, it is not compiled into
platform specific machine, rather into platform independent byte code.
This byte code is distributed over the web and interpreted by virtual
Machine (JVM) on whichever platform it is being run.
• Simple :Java is designed to be easy to learn. If you understand the basic
concept of OOP java would be easy to master.
• Secure : With Java’s secure feature it enables to develop virus-free,
tamper-free systems. Authentication techniques are based on public-key
encryption.
• Architectural- neutral :Java compiler generates an architecture-neutral
object file format which makes the compiled code to be executable on
many processors, with the presence Java runtime system.
• Portable :being architectural neutral and having no implementation
dependent aspects of the specification makes Java portable. Compiler
and Java is written in ANSI C with a clean portability boundary.
• Robust :Java makes an effort to eliminate error prone situations by
emphasizing mainly on compile time error checking and runtime
checking.
• Multi-threaded : With Java’s multi-threaded feature it is possible to
write programs that can do many tasks simultaneously. This design
feature allows developers to construct smoothly running interactive
applications.
• Interpreted :Java byte code is translated on the fly to native machine
instructions and is not stored anywhere. The development process is
more rapid and analytical since the linking is an incremental and light
weight process.
• High Performance: With the use of Just-In-Time compilers Java enables
high performance.
• Distributed :Java is designed for the distributed environment of the
internet.
• Dynamic : Java is considered to be more dynamic than C or C++ since it
is designed to adapt to an evolving environment. Java programs can
carry extensive amount of run-time information that can be used to
verify and resolve accesses to objects on run-time
For remembering
• Basic features is
•OPSSAPRMIHDD
History of java
• James Gosling initiated the Java language project in June 1991 for use in
one of his many set-top box projects. The language, initially called Oak
after an oak tree that stood outside Gosling's office, also went by the
name Green and ended up later renamed as Java, from a list of random
words.
• Sun released the first public implementation as Java 1.0 in 1995. It
promised Write Once, Run Anywhere (WORA), providing no-cost run-
times on popular platforms.
• On 13 November 2006, Sun released much of Java as free and open
source software under the terms of the GNU General Public License
(GPL).
• On 8 May 2007 Sun finished the process, making all of Java's core code
free and open-source, aside from a small portion of code to which Sun
did not hold the copyright.
JAVA VIRTUAL MACHINE
CONCEPT
Java interpreter
for window
Java program
Java Byte code Java interpreter
compiler for macintosh
Java interpreter
for linux
Java is machine independent and Architectural neutral
compiled
• Java program Byte code
And converted
into interpreter
Machine
instruction
Java is machine independent and
architectural neutral
• Java interpreter is a part of java runtime environment.
• Program in java run time environment ,which is used to interpret byte
code , is called java virtual machine(JVM).
• The java compiler reads java language source files , translates the source
into java byte codes and places the bye codes into class file.
• Any machine for which java interpreter is available can execute this byte
code
Layers of interactions for java
programs
Real machine
Operating system
Java virtual machine
Java object framework(API)
compiler interpreter
User Application Program
users
The JVM includes:
A)Byte Code Loader : will pick up the byte code file(.class)
->this byte code is then verified to ensure that it can execute correctly
without violating any of Java’s rule or security consideration.
Any byte code file failing is rejected at this point
Validated Byte code
B)Java Interpreter : It translates the byte code files into executable
instructions for the type of computer hardware and operating system the
local computer is using
•The java object framework(java API) acts as the intermediary between the
users programs and the virtual machine which in turn acts
as the intermediary between the operating system and the java object
framework.