0% found this document useful (0 votes)
35 views

Java

The document provides an introduction to Java Virtual Machine (JVM), Java Runtime Environment (JRE), and Java Development Kit (JDK). It discusses that JVM is an abstract machine that provides runtime environment to execute Java bytecode. JRE contains libraries and files used by JVM at runtime, while JDK contains JRE plus development tools. It also describes the internal architecture of JVM including classloader, method area, heap, stack, and execution engine. Finally, it discusses different variable types in Java like local, instance, and static variables along with examples.

Uploaded by

Vinay Prakash
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

Java

The document provides an introduction to Java Virtual Machine (JVM), Java Runtime Environment (JRE), and Java Development Kit (JDK). It discusses that JVM is an abstract machine that provides runtime environment to execute Java bytecode. JRE contains libraries and files used by JVM at runtime, while JDK contains JRE plus development tools. It also describes the internal architecture of JVM including classloader, method area, heap, stack, and execution engine. Finally, it discusses different variable types in Java like local, instance, and static variables along with examples.

Uploaded by

Vinay Prakash
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

Introduction to java

JVM
 JVM (Java Virtual Machine) is an abstract machine. It
is a specification that provides runtime environment
in which java bytecode can be executed. JVMs are
available for many hardware and software platforms.
JVM, JRE and JDK are platform dependent because
configuration of each OS differs. But, Java is platform
independent. It is:
 A specification where working of Java Virtual
Machine is specified. But implementation provider is
independent to choose the algorithm. Its
implementation has been provided by Sun and other
companies.
 An implementation Its implementation is known
as JRE (Java Runtime Environment).
 Runtime Instance Whenever you write
java command on the command prompt
to run the java class, and instance of JVM
is created.
The JVM performs following main tasks:
 Loads code
 Verifies code
 Executes code
 Provides runtime environment
JVM provides definitions for the:
 Memory area
 Class file format
 Register set
 Garbage-collected heap
 Fatal error reporting etc.
JRE
JRE is an acronym for Java
Runtime Environment. It
is used to provide
runtime environment. It
is the implementation of
JVM. It physically exists.
It contains set of
libraries + other files
that JVM uses at
runtime. Implementation
of JVMs are also actively
released by other
companies besides Sun
Micro Systems.
JDK

JDK is an acronym for


Java Development
Kit. It physically
exists. It contains
JRE +development
tools.
Internal Architecture of JVM
1) Classloader:
Classloader is a subsystem of JVM that is used to load class files.

2) Class(Method) Area:
Class(Method) Area stores per-class structures such as the runtime
constant pool, field and method data, the code for methods.

3) Heap:
It is the runtime data area in which objects are allocated.

4) Stack:
Java Stack stores frames. It holds local variables and partial results, and
plays a part in method invocation and return. Each thread has a private
JVM stack, created at the same time as thread. A new frame is created
each time a method is invoked. A frame is destroyed when its method
invocation completes.
5) Program Counter Register:
PC (program counter) register. It contains the address of the Java
virtual machine instruction currently being executed.

6) Native Method Stack:


It contains all the native methods used in the application.

7) Execution Engine:
It contains:
◦ A virtual processor
◦ Interpreter: Read bytecode stream then execute the instructions.
◦ Just-In-Time(JIT) compiler: It is used to improve the
performance.JIT compiles parts of the byte code that have similar
functionality at the same time, and hence reduces the amount of time
needed for compilation. Here the term ?compiler? refers to a translator
from the instruction set of a Java virtual machine (JVM) to the
instruction set of a specific CPU.

Types of Variable
There are three types of variables in java
 Local variable
 Instance variable
 Static variable

Local Variable
A variable that is declared inside the method is called local variable.

Instance Variable
A variable that is declared inside the class but outside the method is
called instance variable . It is not declared as static.

Static variable
A variable that is declared as static is called static variable. It cannot
be local.
Example to understand the types of
variables
class A
{
int data=50;//instance variable
static int m=100;//static variable
void method()
{
int n=90;//local variable
}
}//end of class
Data Types in Java
In java, there are two types of data types
 primitive data types
 non-primitive data types
Why char uses 2 byte in java and
what is \u0000 ?
Because java uses unicode system rather
than ASCII code system. \u0000 is the
lowest range of unicode system.
Unicode System
Unicode is a universal international standard character encoding that
is capable of representing most of the world's written languages.
Why java uses Unicode System?

Before Unicode, there were many language standards:


 ASCII (American Standard Code for Information Interchange) for
the United States.
 ISO 8859-1 for Western European Language.
 KOI-8 for Russian.
 GB18030 and BIG-5 for chinese , and so on.
This caused two problems: A particular code value
corresponds to different letters in the various language
standards.
 The encodings for languages with large character sets have
variable length. Some common characters are encoded as
single bytes, other require two or more byte.
 To solve these problems, a new language standard was
developed i.e. Unicode System. In unicode, character holds 2
byte, so java also uses 2 byte for characters.
lowest value:\u0000
highest value:\uFFFF
Constructor in Java

Constructor in java is a special type of


method that is used to initialize the object.
Java constructor is invoked at the time of
object creation. It constructs the values i.e.
provides data for the object that is why it
is known as constructor.
Rules for creating java constructor

 There are basically two rules defined for


the constructor.
 Constructor name must be same as its
class name
 Constructor must have no explicit return
type
Types of java constructors

There are two types of constructors:


 Default constructor (no-arg constructor)
 Parameterized constructor
Java Default Constructor

A constructor that have no parameter is


know default constructor
Syntax of default constructor:
<class_name>()
{
}
class Bike1
{
Bike1()
{
System.out.println("Bike is created");
}
public static void main(String args[])
{
Bike1 bnew Bike1();
}
}
purpose of default constructor?
Default constructor provides the default values to the object like 0, null etc. depending on the
type.

class Student3{
int id;
String name;
void display()
{
System.out.println(id+" "+name);
}
public static void main(String args[])
{
Student3 s1=new Student3();
Student3 s2=new Student3();
s1.display();
s2.display();
}
}
parameterized constructor
A constructor that have parameters is
known as parameterized constructor.

Use of parameterized constructor?


Parameterized constructor is used to
provide different values to the distinct
objects.
class Student4{
int id;
String name;
Student4(int i,String n)
{
id = i;
name = n;
}
void display()
{
System.out.println(id+" "+name);
}
public static void main(String args[])
{
Student4 s1 = new Student4(111,"Karan");
Student4 s2 = new Student4(222,"Aryan");
s1.display();
s2.display();
}
}
Constructor Overloading in Java

Constructor overloading is a technique in


Java in which a class can have any number
of constructors that differ in parameter
lists.The compiler differentiates these
constructors by taking into account the
number of parameters in the list and their
type.
class Student5{
int id;
String name;
int age;
Student5(int i,String n){
id = i;
name = n;
}
Student5(int i,String n,int a){
id = i;
name = n;
age=a;
}
void display()
{
System.out.println(id+" "+name+" "+age);
}

public static void main(String args[]){


Student5 s1 = new Student5(111,"Karan");
Student5 s2 = new Student5(222,"Aryan",25);
s1.display();
s2.display();
}
}
Difference between constructor
and method in java
Java Copy Constructor

There is no copy constructor in java. But, we can


copy the values of one object to another like
copy constructor in C++.
There are many ways to copy the values of one
object into another in java. They are:
 By constructor
 By assigning the values of one object into another
 By clone() method of Object class
In this example, we are going to copy the values of
one object into another using java constructor.
class Student6{
int id;
String name;
Student6(int i,String n){
id = i;
name = n;
}

Student6(Student6 s){
id = s.id;
name =s.name;
}
void display(){System.out.println(id+" "+name);}

public static void main(String args[]){


Student6 s1 = new Student6(111,"Karan");
Student6 s2 = new Student6(s1);
s1.display();
s2.display();
}
}
Copying values without constructor

We can copy the values of one object into another


by assigning the objects values to another object.
In this case, there is no need to create the
constructor.
 Does constructor return any value?
yes, that is current class instance (You cannot use
return type yet it returns a value).
 Can constructor perform other tasks instead of
initialization?
Yes, like object creation, starting a thread, calling
method etc.You can perform any operation in the
constructor as you perform in the method.
class Student7{
int id;
String name;
Student7(int i,String n){
id = i;
name = n;
}
Student7(){}
void display(){System.out.println(id+" "+name);}

public static void main(String args[]){


Student7 s1 = new Student7(111,"Karan");
Student7 s2 = new Student7();
s2.id=s1.id;
s2.name=s1.name;
s1.display();
s2.display();
}
}

You might also like