Dabaoshi
Author

Dabaoshi

Practical utilities

49
Articles
0
Likes
24
Views
0
Comments
Recent Articles

Latest from Dabaoshi

49 recent articles
Dabaoshi
Dabaoshi
Aug 1, 2026 · Fundamentals

JVM Frontiers: What’s Next for Java’s Runtime?

The article reviews the JVM series finale, explaining how GraalVM Native Image, Project Loom, Project Valhalla, and Project Panama each address Java’s historic shortcomings—startup latency, heavyweight threads, object overhead, and clumsy native interop—while weighing their trade‑offs and future impact.

GraalVMJVMJava performance
0 likes · 12 min read
JVM Frontiers: What’s Next for Java’s Runtime?
Dabaoshi
Dabaoshi
Aug 1, 2026 · Fundamentals

JVM Concurrency Deep Dive: JMM and Low‑Level Synchronization

This article explains the three fundamental problems of Java concurrency—visibility, atomicity, and ordering—describes how the Java Memory Model and happens‑before rules address them, and details the low‑level implementations and optimizations of volatile, synchronized, lock upgrading, and the removal of biased locking in JDK 15‑17.

JVMJava Memory Modelconcurrency
0 likes · 18 min read
JVM Concurrency Deep Dive: JMM and Low‑Level Synchronization
Dabaoshi
Dabaoshi
Jul 31, 2026 · Fundamentals

Is Java Interpreted or Compiled? Understanding the JVM’s JIT Execution

This article explains why the JVM combines interpretation and Just‑In‑Time compilation, how it detects hot code with invocation and back‑edge counters, the tiered C1/C2 compilation process, key JIT optimizations like method inlining, and how to observe JIT activity using JVM flags.

GraalHotSpotJIT
0 likes · 16 min read
Is Java Interpreted or Compiled? Understanding the JVM’s JIT Execution
Dabaoshi
Dabaoshi
Jul 31, 2026 · Backend Development

JVM GC Tuning and Live Production Troubleshooting

This article guides backend engineers through practical JVM garbage‑collection tuning and on‑line incident diagnosis, covering measurement‑first principles, JDK 8 vs 17 log changes, key JVM flags, essential tooling, and step‑by‑step real‑world cases for CPU spikes, memory leaks, and deadlocks.

ArthasDiagnosticsGC
0 likes · 20 min read
JVM GC Tuning and Live Production Troubleshooting
Dabaoshi
Dabaoshi
Jul 31, 2026 · Fundamentals

JVM Garbage Collectors: From Serial to ZGC – A Complete Overview

This article walks through the evolution of Java garbage collectors—from the early Serial collector to modern low‑latency ZGC and Shenandoah—explaining how throughput, pause time, and safepoints shape each collector’s design and what changes matter when upgrading from JDK 8 to JDK 17.

CMSG1Garbage Collection
0 likes · 21 min read
JVM Garbage Collectors: From Serial to ZGC – A Complete Overview
Dabaoshi
Dabaoshi
Jul 31, 2026 · Fundamentals

Understanding JVM GC Algorithms and the Generational Model

This article explains the three fundamental garbage‑collection algorithms (Mark‑Sweep, Copying, Mark‑Compact), the three generational hypotheses, the structure and rules of the young generation, the distinctions among Minor, Major and Full GCs, and how remembered sets and card tables efficiently handle cross‑generation references in the JVM.

Card TableGC algorithmsGarbage Collection
0 likes · 19 min read
Understanding JVM GC Algorithms and the Generational Model
Dabaoshi
Dabaoshi
Jul 29, 2026 · Fundamentals

How the JVM Allocates Objects and Arranges Their Memory Layout

This article walks through the JVM's six-step process for creating a new object, explains heap allocation strategies and thread‑local buffers, details escape analysis optimizations, reveals the exact memory layout of an object including header and padding, compares handle versus direct pointer access, and describes reachability‑based garbage collection with the four Java reference types.

Escape AnalysisGarbage CollectionJVM
0 likes · 22 min read
How the JVM Allocates Objects and Arranges Their Memory Layout
Dabaoshi
Dabaoshi
Jul 29, 2026 · Fundamentals

JVM Compile‑Time Secrets: Syntactic Sugar and Method Dispatch

This article walks through how the Java compiler (javac) transforms source code into bytecode, revealing the hidden steps of syntactic‑sugar removal, generic type erasure, autoboxing pitfalls, foreach/varargs handling, the five invoke instructions, static versus dynamic method dispatch, and why Lambda expressions rely on invokedynamic rather than anonymous inner classes.

JVMinvokeinvokedynamic
0 likes · 19 min read
JVM Compile‑Time Secrets: Syntactic Sugar and Method Dispatch
Dabaoshi
Dabaoshi
Jul 27, 2026 · Fundamentals

Understanding JVM Runtime Data Areas: From JDK 8 to JDK 17

This article walks through the five JVM runtime data areas, explains the distinction between the JVM specification and HotSpot implementation, compares the PermGen to Metaspace transition from JDK 8 to JDK 17, and provides hands‑on code to reproduce each type of memory‑related OutOfMemoryError.

Garbage CollectionHeapJVM
0 likes · 22 min read
Understanding JVM Runtime Data Areas: From JDK 8 to JDK 17
Dabaoshi
Dabaoshi
Jul 27, 2026 · Databases

Why MySQL’s utf8 Is Not Real UTF‑8 and How to Avoid Garbled Text

The article explains the difference between character sets and encodings, shows that MySQL’s utf8 is actually an alias for utf8mb3, demonstrates how using the wrong charset or collation causes garbled data, and provides practical steps to consistently use utf8mb4 across versions and connections.

MySQLcharacter setcollation
0 likes · 13 min read
Why MySQL’s utf8 Is Not Real UTF‑8 and How to Avoid Garbled Text