Anatomy of Java Virtual Machine


Aim of the course

Introduction into the problems of virtual machines using the example of the Java virtual machine. Getting the skills and competencies to understand the principles of virtual machines, automatic memory management, ideas and principles of compiling into the intermediate code.

Lecture programme

Java as a specification, language and platform. Tools: javap, jasm, javac. The life cycle of classes in JVM. Hooks in Java. File format *. class. Executing bytecode, stack frame. The instructions included in Java bytecode - writing classes, exception handling, synchronization, ways of calling methods. Methods of the representation of objects in Virtual Machine. Classification and algorithms of garbage collectors - reference counting, trading, Mark & Sweep and generational adaptive algorithms. The "train" and tricolor algorithm. Optimization of various parameters of garbage collectors using the example of Sun Spot. Cooperation Java – the external world - JNI. The NIO library in the context of automatic memory management. Objects reachability classes in Java - finalizers. Java in real-time systems. Just In Time Compilation – concepts, algorithms.

Overview of the course elements

The course is accompanied by laboratory classes. They are intended to consolidate the content extend the knowledge taught during lectures allowing to use it in a practical way. During the laboratory classes, students write their own simple language interpreters, provide for it a garbage collector (in a number of ways). Students learn the idea of classes instrumentation using bytecode manipulation libraries (such as BCEL). In the course of other assignments, students solve some problems related tp JNI and Just In Time compilation.

Reading list

1. Specyfikacja Maszyny Wirtualnej Java

Copyright © 2010 Department of Computer Science   |   AGH University of Science and Technology   |   Created by Creative Bastards