Java Virtual Machine
Course Description
The Java virtual machine (JVM) is an abstract computer defined by a specification describing the working of Java programs. Java programs run inside a concrete implementation of this abstract specification. This 2-day course looks deeply at the internal working of the Java virtual machine specification and its implementation. The course starts with an overview of Java’s features and architecture. It then describes the internal JVM functions, including class file structure, class loading and verification, garbage collection, code security, and thread synchronization. The course also
covers various method invocation techniques by the JVM including reflection.
covers various method invocation techniques by the JVM including reflection.
Course Duration
2 days
Course Objectives
At the end of this course, the student should:
• Understand the java architecture and its features to support writing portable secure code,
• Understand the specification and implementation of the Java virtual machine,
• Understand the structure of the java class file and the process of class loading,
• Be able to write customized class loaders,
• Understand the various techniques for garbage collection,
• Be able to use reference objects for writing code that automatically free objects and cleanup resources,
• Understand and use various ways for method invocation including native methods,
• Be able to use various reflection classes to handle dynamic object types,
• Understand the Java thread model and various synchronization mechanisms,
• Be able to write effective multi-threaded applications.
• Understand the java architecture and its features to support writing portable secure code,
• Understand the specification and implementation of the Java virtual machine,
• Understand the structure of the java class file and the process of class loading,
• Be able to write customized class loaders,
• Understand the various techniques for garbage collection,
• Be able to use reference objects for writing code that automatically free objects and cleanup resources,
• Understand and use various ways for method invocation including native methods,
• Be able to use various reflection classes to handle dynamic object types,
• Understand the Java thread model and various synchronization mechanisms,
• Be able to write effective multi-threaded applications.
Course Content
Introduction to Java Architecture
Introduction to Java as a technology; overview of Java's architecture; features of the Java language; Java portability.
Java Class Files and Class Loaders
The organisation of a Java class file; Java class file format; the class loader; class loading process; building customized class loaders.
Garbage Collection
Garbage collection techniques; types of garbage collectors; garbage collection in the JVM; reference counting;
object reachability; Java reference objects; finalization.
Method Invocation and Reflection Classes
Invoking a java method; invoking a native method; using the invoksepecial instruction; using reflection classes; class instantiation with reflection.
Java Security Model
The security model built into Java's core architecture; the Java sandbox; the evolution of Java's security model; the class file verifier; JVM safety features; the security manager; code signing.
Threads and Thread Synchronization
The java thread model; the thread lifecycle; monitors; Java synchronization support; object locking and unlocking.
Introduction to Java as a technology; overview of Java's architecture; features of the Java language; Java portability.
Java Class Files and Class Loaders
The organisation of a Java class file; Java class file format; the class loader; class loading process; building customized class loaders.
Garbage Collection
Garbage collection techniques; types of garbage collectors; garbage collection in the JVM; reference counting;
object reachability; Java reference objects; finalization.
Method Invocation and Reflection Classes
Invoking a java method; invoking a native method; using the invoksepecial instruction; using reflection classes; class instantiation with reflection.
Java Security Model
The security model built into Java's core architecture; the Java sandbox; the evolution of Java's security model; the class file verifier; JVM safety features; the security manager; code signing.
Threads and Thread Synchronization
The java thread model; the thread lifecycle; monitors; Java synchronization support; object locking and unlocking.
Who should attend?
This course is aimed at experienced Java Programmers
Pre-requisites
Candidates should have either completed c2’s Core Java Programming course or have a strong understanding and experience of using the Java language