Page | 1
JAVA Programming Language
What is Java?
Java is a programming language and a platform. Java is a high level,
robust, object-oriented and secure programming language.
Java was developed by Sun Microsystems (which is now the subsidiary of
Oracle) in the year 1995. James Gosling is known as the father of Java.
Before Java, its name was Oak. Since Oak was already a registered
company, so James Gosling and his team changed the name from Oak to
Java.
Platform: Any hardware or software environment in which a program
runs, is known as a platform. Since Java has a runtime environment (JRE)
and API, it is called a platform.
Types of Java Applications
There are mainly 4 types of applications that can be created using Java
programming:
1) Standalone Application
Standalone applications are also known as desktop applications or
window-based applications. These are traditional software that we
need to install on every machine. Examples of standalone
application are Media player, antivirus, etc. AWT and Swing are used
in Java for creating standalone applications.
2) Web Application
An application that runs on the server side and creates a dynamic
page is called a web application.
Currently, Servlet, JSP, Struts, Spring, Hibernate, JSF, etc. technologies
are used for creating web applications in Java.
Page | 2
3) Enterprise Application
An application that is distributed in nature, such as banking
applications, etc. is called an enterprise application. It has
advantages like high-level security, load balancing, and clustering.
In Java, EJB is used for creating enterprise applications.
4) Mobile Application
An application which is created for mobile devices is called a mobile
application. Currently, Android and Java ME are used for creating
mobile applications.
Java Platforms / Editions
There are 4 platforms or editions of Java:
1) Java SE (Java Standard Edition)
It is a Java programming platform. It includes Java programming
APIs such as java.lang, java.io, java.net, java.util, java.sql, java.math
etc. It includes core topics like OOPs, String, Regex, Exception, Inner
classes, Multithreading, I/O Stream, Networking, AWT, Swing,
Reflection, Collection, etc.
2) Java EE (Java Enterprise Edition)
It is an enterprise platform that is mainly used to develop web and
enterprise applications. It is built on top of the Java SE platform. It
includes topics like Servlet, JSP, Web Services, EJB, JPA, etc.
3) Java ME (Java Micro Edition)
It is a micro platform that is dedicated to mobile applications.
Page | 3
4) JavaFX
It is used to develop rich internet applications. It uses a lightweight user
interface API.
Features of Java
The new J2 versions were renamed as Java SE, Java EE and Java ME
respectively. Java is guaranteed to be Write Once, Run Anywhere.
Java is:
• 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 of Java runtime system.
• Portable: Being architectural-neutral and having no
implementation dependent aspects of the specification makes
Java portable. Compiler in Java is written in ANSI C with a clean
portability boundary which is a POSIX subset.
Page | 4
• Multithreaded: With Java's multithreaded 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.
• Robust
The English mining of Robust is strong. Java is robust
because:
o It uses strong memory management.
o There is a lack of pointers that avoids security problems.
o Java provides automatic garbage collection which runs on
the Java Virtual Machine to get rid of objects which are not
being used by a Java application anymore.
o There are exception handling and the type checking
mechanism in Java. All these points make Java robust.
JVM
JVM (Java Virtual Machine) is an abstract machine. It is called a virtual
machine because it doesn't physically exist. It is a specification that
Page | 5
provides a runtime environment in which Java bytecode can be executed.
It can also run those programs which are written in other languages and
compiled to Java bytecode.
JRE
JRE is an acronym for Java Runtime Environment. It is also written as Java
RTE. The Java Runtime Environment is a set of software tools which are
used for developing Java applications. It is used to provide the runtime
environment. It is the implementation of JVM. It physically exists. It
contains a set of libraries + other files that JVM uses at runtime.
The implementation of JVM is also actively released by other companies
besides Sun Micro Systems.
JDK
JDK is an acronym for Java Development Kit. The Java Development
Kit (JDK) is a software development environment which is used to
Page | 6
develop Java applications and applets. It physically exists. It contains
JRE + development tools.
JDK is an implementation of any one of the below given Java
Platforms released by Oracle Corporation:
o Standard Edition Java Platform
o Enterprise Edition Java Platform
o Micro Edition Java Platform
The JDK contains a private Java Virtual Machine (JVM) and a few other
resources such as an interpreter/loader (java), a compiler (javac), an
archiver (jar), a documentation generator (Javadoc), etc. to complete
the development of a Java Application.