Java Virtual Machine
-
Upload
sivanantham-s -
Category
Engineering
-
view
8 -
download
0
Transcript of Java Virtual Machine
JAVA VIRTUAL MACHINE
1. DATA TYPES2. DATA STORAGE3. JAVA INSTRUCTION SET 4. EXCEPTIONS AND ERRORS5. BINARY CLASSES6. THE JAVA NATIVE INTERFACE
1.DATA TYPESPRIMITIVE DATA TYPES:
Size is platform independent char short double float
OBJECTS AND ARRAYS:
Array object is a special and intrinsic type of object Elements of an array must be same primitive type or references of same type
Multi dimensional arrays
2. DATA STORAGEThere are three types of storage namely,
Global Storage (Main memory) Local Storage (Methods) Operand Storage (Instructions)
THE STACKThe Local storage(Fixed size), Operand Storage and Method arguments are allocated on the stack
GLOBAL MEMORY
The main Memory architecture of Java contains,• Method area (stores Code)• Global storage area (stores Arrays & Objects)
Global Memory is managed as a Heap Size of the Heap is platform dependent
CONSTANT POOL
ISA of Java allows to store some constant values as immediate operands Constant operands may have varying size JVM supports a special memory area called the Constant Pool for storing immediate
operands
MEMORY HIERARCHYIt contains,
STACK Constant pool Heap
3. JAVA INSTRUCTION SETINSTRUCTION FORMATS
Java ISA have 5 major types as given,
Constant Pool
Stack
DATA MOVEMENT INSTRUCTIONSThere are four sets of Data movement instructions,Set1- push constant values onto the stack (includes all loads and stores)Set2- pops values at the topSet3- moves values b/w local storage and operand stackSet4- moves values b/w global storage and stack
TYPE CONVERSION
JVM allows to convert one type of data to other type in the stack. It requires a Pop and Push operation
FUNCTIONAL INSTRUCTIONS
There are three types namely, Arithmetic Logical Shifts Requires internal conversion to binary form
In all the instructions, operands are taken from the stack and results are pushed
back to the stack
CONTROL FLOW STATEMENT (branches and jumps)
There are two sets of statements,Set1 – compares a element in stack with zeroSet2- compares two or more elements in a stack There will be a PC relative branching to an offset, found by concatenating the data bytes
Methods are called via invoking instructions like,
Invokevirtual index1 index2 Invoke interface Invokestatic ireturn
OPERAND STACK TRACKINGRegardless to the path taken by program, at any given point of time, the operand stack must have,
Same number of operands Same types of operands In the same order
To maintain this operand stack has to be monitored through static program analysis
4.EXCEPTION HANDLING AND ERRORSMajorly there are two types of Exceptions,
Default (Automatically handled) User defined (Needed to be handled manually)
ERRORS (Inherent)Stackoverflowerror Internal error
EXCEPTIONS (related to program behaviour)NullpointerExceptionArrayindexoutofboundException
IncompatibleclasschangException EXCEPTION TABLE
FROM TO TARGET TYPE
8 12 90 Arithmetic Exception
5.BINARY CLASSES Any HLL Program will contain,
Code Metadata
Binary classes= Code+ MetadataClass file contains Binary classes AdvantagesAll Binary classes do not have to be loaded when the program startsClasses can be loaded on demandReduces bandwidth for loading classes
6. JAVA NATIVE INTERFACE It helps Java code to interoperate with native compiled code
THANK YOU