Java Virtual Machine

Preview:

Citation preview

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

Recommended