JVM Memory Structure: Understanding the Heap
1. Structure Diagram
2. Heap
Objects reside in the heap: their size is unpredictable and can change dynamically.
The stack holds primitive values and object referances; each reference is typically 4 bytes.
2.1 Characteristics
Nearly all objects are allocated on the heap.
Heap memory is fully managed by the JVM through automatic garbage col ...
Posted on Sat, 20 Jun 2026 18:02:37 +0000 by atomm
Understanding Automatic Memory Management via Garbage Collection in Java
Java automates memory handling through its garbage collection (GC) subsystem, wich identifies and reclaims memory occupied by objects no longer reachable, mitigating leaks and stability issues.
Core Principles of GC
The mechanism hinges on tracing object reference graphs to separate live instances from abandoned ones. Reachable objects remain i ...
Posted on Thu, 18 Jun 2026 16:57:46 +0000 by misslilbit02
Diagnosing NoClassDefFoundError: A Static Initialization Pitfall
A production alert came in at midnight while the on-call engineer was asleep. After connecting to the environment, it became clear that one microservice was experiencing a steady increase in file descriptor usage, eventually leading to an OutOfMemoryError and service crash. This microservice establishes SSH connections during operation, and sin ...
Posted on Wed, 17 Jun 2026 17:35:17 +0000 by zeberdeee
A Practical Guide to Compiling and Running Basic Java Applications
Validating the Build Toolchain
Following a JDK installation, executing a straightforward console routine confirms that the compiler and runtime engine are properly integrated. This section outlines the complete workflow for creating, building, and launching a standalone Java module.
Constructing the Source Module
Java files require plain-text e ...
Posted on Tue, 16 Jun 2026 18:01:36 +0000 by vonnero
Essential Guidelines for Java Methods
Method Invocation in Java
When calling methods within the same class in Java, the class name prefix can be omitted.
/*
Method invocation demonstration
*/
public class MethodDemo03{
public static void main(String[] args){
// Full method call
MethodDemo03.executeMethod();
// Simplified call due to static modifie ...
Posted on Tue, 16 Jun 2026 17:48:01 +0000 by DGaleDavid
Understanding JVM Runtime Data Areas: Memory Structure and Thread Management
Runtime Data Area Overview
The runtime data area constitutes a critical section of the JVM's memory architecture. It comes into play after the class loading process completes, specifically following the verification, preparation, and resolution phases.
The execution engine interacts with this data area to utilize loaded classes. Consider this a ...
Posted on Sun, 14 Jun 2026 17:40:06 +0000 by jassh
Understanding Instance and Class Level Locking in Java
Instance-Level Locking
In Java, when you apply the synchronized keyword to a non-static method, the lock is associated with the specific object instance (this). This ensures that only one thread can execute any synchronized instance method on that particular object at a time.
Race Condition in Instance Members
Consider a scenario where two fiel ...
Posted on Fri, 12 Jun 2026 17:42:24 +0000 by mallard
Understanding Java Class Loaders and Custom Implementation
Class Loading and Compilation
Class loaders serve the purpose of loading Java classes (specifically .class bytecode files that have been compiled from .java source files) into JVM memory for execution.
Compiling Java files
Package: package com.melody.sec.classloader;, Class name: DefineClassDemo
Compile Java file
javac com/melody/sec/classlo ...
Posted on Wed, 10 Jun 2026 18:24:08 +0000 by noobcody
Simulating Java Heap Exhaustion and Post-Mortem Analysis
-Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError
Execute the following routine to continuously allocate objects within an unbounded collection until the memory ceiling is breached:
import java.util.ArrayList;
import java.util.List;
public class MemoryPressureTest {
private static class DataBlock {}
public static void triggerExhaustion ...
Posted on Mon, 08 Jun 2026 16:56:47 +0000 by p3rk5
JVM Performance Tuning Tools and Commands
jstat: Monitoring Class Loading, Memory, and Garbage Collection
The jstat utility provides performance statistics for a specified Java Virtual Machine (JVM). It can display information about class loading, memory usage, and garbage collection (GC) activities.
Common Options:
-class: Displays class loader statistics.
-compiler: Displays informa ...
Posted on Sun, 07 Jun 2026 16:50:42 +0000 by renj0806