+
Introduction to java
Lecture 1
Kandahar University
Faculty of Computer Science
Niaz.M "doostyar"
1
+ 2
Today’s Lecture
What is Java
History of Java
Features of Java
Environment Setup
JDK, JRE and JVM
Internal Details of JVM
Question
Niaz.M "doostyar"
+ 3
What is Java
Java is a programming language and a platform.
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.
Java is a high level, robust, object-oriented and secure
programming language.
Applications
According to Sun, 3 billion devices run Java. There are many devices where Java is currently used.
Some of them are as follows:
Desktop Applications such as acrobat reader, media player, antivirus, etc.
Web Applications such as irctc.co.in, , etc.
Enterprise Applications such as banking applications.
Mobile
Embedded System
Smart Card
Robotics
Games, etc.
Niaz.M "doostyar"
+ 4
Types of Java Applications
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.
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.
Enterprise Application
An application that is distributed in nature, such as banking applications, etc. is called
enterprise application. It has advantages of the high-level security, load balancing, and
clustering. In Java, EJB is used for creating enterprise applications.
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.
Niaz.M "doostyar"
+ 5
Java Platforms / Editions
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.
Java EE (Java Enterprise Edition)
It is an enterprise platform which is mainly used to develop web and enterprise
applications. It is built on the top of the Java SE platform. It includes topics like
Servlet, JSP, Web Services, EJB, JPA, etc.
Java ME (Java Micro Edition)
It is a micro platform which is mainly used to develop mobile applications.
JavaFX
It is used to develop rich internet applications. It uses a light-weight user
interface API.
Niaz.M "doostyar"
+ 6
History of Java
James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java
language project in June 1991. The small team of sun engineers called Green
Team. Originally designed for small, embedded systems in electronic
appliances like set-top boxes. Firstly, it was called "Greentalk" by James
Gosling, and file extension was .gt. After that, it was called Oak and was
developed as a part of the Green project.
Why Java named "Oak"?
Why Java Programming named "Java"?
Suggested words were "dynamic", "revolutionary", "Silk", "jolt", "DNA", etc.
Java is an island of Indonesia where first coffee was produced (called java coffee).
Initially developed by James Gosling at Sun Microsystems (which is now a subsidiary
of Oracle Corporation) and released in 1995.
Niaz.M "doostyar"
+ 7
Features of Java
A list of most important features of Java language is given below
Simple
Object-Oriented
Platform independent
Secured
Portable
Robust
Interpreted
High Performance
Multithreaded
Distributed
RMI and EJB are used for creating distributed applications.
Dynamic
It supports dynamic loading of classes.Java supports dynamic compilation and automatic memory
management (garbage collection).
Architecture neutral
Example, the size of primitive types is fixed. In c int data type occupies 2 bytes of memory for 32-bit
architecture and 4 bytes of memory for 64-bit architecture.
Niaz.M "doostyar"
+ 8
Environment Setup
Setup:
Install the JDK if you don't have installed it, download the JDK and
install it.
Set path of the jdk/bin directory.
Create the java program
Compile and run the java program
IDE (Integrated Development Environment)
NetBeans
Eclipse
Intellij
BlueJ
etc
Niaz.M "doostyar"
+ 9
Internal Details of Java Program
What happens at compile time?
What happens at runtime?
Classloader
is the subsystem of JVM that is used to load class files.
Bytecode Verifier
checks the code fragments for illegal code that can violate access
right to objects.
Interpreter
read bytecode stream then execute the instructions
Niaz.M "doostyar"
+ 10
What is the deference between JDK, JRE, JVM ?
Niaz.M "doostyar"
+ 11
JVM (Java Virtual Machine)
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 provides a runtime environment in which Java
bytecode can be executed.
The JVM performs the following main tasks:
Loads code
Verifies code
Executes code
Provides runtime environment
Niaz.M "doostyar"
+ 12
JVM Architecture
Niaz.M "doostyar"
+ 13
JRE (Java Runtime Environment)
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.
Niaz.M "doostyar"
+ 14
JDK (Java Development Kit)
The Java Development Kit (JDK) is a software development environment
which is used to 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:
Standard Edition Java Platform
Enterprise Edition Java Platform
Micro Edition Java Platform
Niaz.M "doostyar"
15
Niaz.M "doostyar"