Java
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
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.
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?
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.
Student6(Student6 s){
id = s.id;
name =s.name;
}
void display(){System.out.println(id+" "+name);}