Java Virtual Machine

14
JAVA VIRTUAL MACHINE 1. DATA TYPES 2. DATA STORAGE 3. JAVA INSTRUCTION SET 4. EXCEPTIONS AND ERRORS 5. BINARY CLASSES 6. THE JAVA NATIVE INTERFACE

Transcript of Java Virtual Machine

Page 1: Java Virtual Machine

JAVA VIRTUAL MACHINE

1. DATA TYPES2. DATA STORAGE3. JAVA INSTRUCTION SET 4. EXCEPTIONS AND ERRORS5. BINARY CLASSES6. THE JAVA NATIVE INTERFACE

Page 2: Java Virtual Machine

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

Page 3: Java Virtual Machine

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

Page 4: Java Virtual Machine

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

Page 5: Java Virtual Machine

MEMORY HIERARCHYIt contains,

STACK Constant pool Heap

Page 6: Java Virtual Machine

3. JAVA INSTRUCTION SETINSTRUCTION FORMATS

Java ISA have 5 major types as given,

Constant Pool

Stack

Page 7: Java Virtual Machine

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

Page 8: Java Virtual Machine

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

Page 9: Java Virtual Machine

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

Page 10: Java Virtual Machine

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

Page 11: Java Virtual Machine

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

Page 12: Java Virtual Machine

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

Page 13: Java Virtual Machine

6. JAVA NATIVE INTERFACE It helps Java code to interoperate with native compiled code

Page 14: Java Virtual Machine

THANK YOU