Skip to main content
grasp.study
About
Explore
Pricing
Log in
Try it for free
Back to course
👋
Welcome to a Grasp lesson
Create a free account
to keep studying and create your own study path.
Java Basics: Beyond the Fundamentals
·
Module 2
JVM Architecture and Class Loading
JVM Subsystems: Core Components
Identify and describe the core JVM subsystems: class loader subsystem, runtime data areas, and execution engine.
2
Understanding Bytecode, JIT, and HotSpot Optimization
Differentiate between bytecode interpretation and JIT compilation, and explain how HotSpot identifies and optimizes hot code paths.
Understanding Java Class Loading Phases
Explain the class loading phases: loading, linking (verification, preparation, resolution), and initialization.
4
Constructors and Static Initializers: <init> and <clinit> in Bytecode
Describe how constructors and static initializers are represented in bytecode as <init> and <clinit> methods and when they are invoked.
5
Understanding Class Loaders: Parent-Delegation Model & Hierarchy
Describe the parent-delegation model and the class loader hierarchy (bootstrap, platform, application).
Custom Class Loader: Dynamic Class Loading
Implement a simple custom class loader to dynamically load a class from a specified path.
Previous module
Java Compilation and Bytecode
Next module
JVM Runtime Data Areas and Object Model