Tagged articles
152 articles
Page 2 of 2
Alibaba Cloud Native
Alibaba Cloud Native
Apr 7, 2021 · Operations

How Arthas Hit 25K Stars: A Year of Java Diagnostic Innovations

This article reviews Arthas’s rapid growth to over 25,000 GitHub stars, highlighting its technical advancements, release highlights, community contributions, usage statistics, and future roadmap, while providing code examples and links to its open‑source repositories and documentation.

Arthasbytecodediagnostics
0 likes · 9 min read
How Arthas Hit 25K Stars: A Year of Java Diagnostic Innovations
Intelligent Backend & Architecture
Intelligent Backend & Architecture
Mar 30, 2021 · Fundamentals

Understanding Java Basics: OOP, JVM, JDK, and Bytecode Explained

This article introduces core Java concepts, comparing procedural and object‑oriented thinking, explains what Java is, clarifies the relationships among JVM, JRE, and JDK, describes bytecode advantages, contrasts Java with C++, and details the three pillars of OOP—encapsulation, inheritance, and polymorphism—plus inner classes.

JVMOOPbytecode
0 likes · 9 min read
Understanding Java Basics: OOP, JVM, JDK, and Bytecode Explained
Python Programming Learning Circle
Python Programming Learning Circle
Mar 28, 2021 · Fundamentals

Understanding Python's for Loop: Syntax, Else Clause, Iterables, Iterators, and Bytecode Disassembly

This article explains Python's for loop in depth, covering basic syntax, the optional else clause, the concepts of iterables and iterators, how to implement custom iterators and iterable objects, the loop's execution flow, an equivalent while‑loop implementation, and a step‑by‑step disassembly of the generated bytecode.

Iterablebytecodedisassembly
0 likes · 12 min read
Understanding Python's for Loop: Syntax, Else Clause, Iterables, Iterators, and Bytecode Disassembly
Architect's Tech Stack
Architect's Tech Stack
Mar 11, 2021 · Fundamentals

Understanding Java String Length Limits and JVM Specification

This article explains Java's String length limitations, detailing how strings are stored as char arrays, the int‑based length method, the JVM class‑file constant pool constraints (u2 index max 65535, effectively 65534), and demonstrates practical experiments confirming these limits.

JVMLength LimitString
0 likes · 8 min read
Understanding Java String Length Limits and JVM Specification
Qunar Tech Salon
Qunar Tech Salon
Jan 27, 2021 · Mobile Development

Implementing Global SDK Privacy Monitoring and Hooking in Android via ASM Transform and Custom Annotations

This article explains how QuNar’s front‑end team built a comprehensive Android SDK privacy monitoring system using a custom Transform, ASM bytecode manipulation, and annotation‑driven hook configurations, detailing both basic and advanced solutions for globally intercepting sensitive API calls and ensuring extensible, version‑independent protection.

ASMAndroidHook
0 likes · 20 min read
Implementing Global SDK Privacy Monitoring and Hooking in Android via ASM Transform and Custom Annotations
360 Tech Engineering
360 Tech Engineering
Jan 12, 2021 · Fundamentals

Understanding Java Lambda Expressions and Functional Interfaces: Syntax, Features, and Bytecode Analysis

This article explains Java lambda expressions (closures) introduced in Java 8, their concise syntax and optional features, demonstrates functional interfaces and practical code examples, and analyzes the generated bytecode and LambdaMetafactory mechanism that underlies their runtime behavior.

Functional InterfaceJava 8Lambda Expressions
0 likes · 9 min read
Understanding Java Lambda Expressions and Functional Interfaces: Syntax, Features, and Bytecode Analysis
Xianyu Technology
Xianyu Technology
Dec 24, 2020 · Backend Development

Root Cause Analysis of Metaspace OOM Triggered by Arthas Trace

Tracing a large method with Arthas caused a Metaspace OOM because constant‑pool rewrites inflated the Non‑Class space, each rewrite copying a massive StackMapTable, but preserving the original constant‑pool layout in Arthas stops the growth, and exposing off‑heap metrics aids production monitoring.

ArthasJVMMetaspace
0 likes · 20 min read
Root Cause Analysis of Metaspace OOM Triggered by Arthas Trace
360 Quality & Efficiency
360 Quality & Efficiency
Dec 18, 2020 · Fundamentals

Understanding Java Lambda Expressions and Functional Interfaces: Syntax, Features, and Bytecode Analysis

This article explains Java lambda expressions and functional interfaces, covering their concise syntax, optional features, practical code examples, how they differ from anonymous classes, the role of @FunctionalInterface, built‑in JDK functional interfaces, and a detailed bytecode analysis of the generated lambda methods.

Functional InterfaceLambdabytecode
0 likes · 9 min read
Understanding Java Lambda Expressions and Functional Interfaces: Syntax, Features, and Bytecode Analysis
vivo Internet Technology
vivo Internet Technology
Oct 20, 2020 · Fundamentals

Understanding Java Try‑with‑Resources: Syntax, Bytecode, and Best Practices

The article explains Java’s try‑with‑resources feature as syntactic sugar that the compiler rewrites into a try‑finally structure with sophisticated exception handling, demonstrates the generated bytecode, clarifies AutoCloseable versus Closeable, and offers best‑practice guidelines for reliable resource management.

Exception HandlingJDK 9autocloseable
0 likes · 17 min read
Understanding Java Try‑with‑Resources: Syntax, Bytecode, and Best Practices
vivo Internet Technology
vivo Internet Technology
Sep 23, 2020 · Backend Development

Bytecode Enhancement with JavaAgent: Principles, Tools, and Implementation

The article explains how to enhance Java bytecode using a javaagent, covering bytecode fundamentals, agent loading during JVM startup, implementation steps, transformation via ClassFileTransformer, and popular tools such as ASM, Javassist, and ByteBuddy for non‑intrusive runtime instrumentation and monitoring.

ASMByteBuddyInstrumentation
0 likes · 13 min read
Bytecode Enhancement with JavaAgent: Principles, Tools, and Implementation
Top Architect
Top Architect
Jun 22, 2020 · Fundamentals

Understanding the Seven Stages of Java Class Loading and Initialization

This article explains the seven stages of Java class loading—Loading, Verification, Preparation, Resolution, Initialization, Using, and Unloading—detailing each step, the underlying mechanisms, code examples, and practical considerations such as class initialization triggers and the distinction between symbolic and direct references.

InitializationJVMbytecode
0 likes · 14 min read
Understanding the Seven Stages of Java Class Loading and Initialization
58 Tech
58 Tech
Jun 8, 2020 · Mobile Development

Understanding and Applying Facebook’s Redex Bytecode Optimizer for Android APK Size and Startup Time Reduction

This article explains the principles and usage of Facebook’s open‑source Android bytecode optimizer Redex, presents its design, lists the optimization techniques it provides, and shares practical results of applying Redex (including Interdex) to the Anjuke app, highlighting the achieved APK size reduction and startup‑time improvements as well as the integration costs.

APK OptimizationAndroidRedex
0 likes · 8 min read
Understanding and Applying Facebook’s Redex Bytecode Optimizer for Android APK Size and Startup Time Reduction
Python Programming Learning Circle
Python Programming Learning Circle
Jun 2, 2020 · Fundamentals

Understanding the Difference Between == and is in Python 3.6

This article examines the implementation details of Python's == and is operators, showing how both are compiled to COMPARE_OP bytecode with different opcodes, exploring the underlying C functions like cmp_outcome and object_richcompare, and explaining the rich comparison protocol and its default behavior.

ComparisonPythonbytecode
0 likes · 11 min read
Understanding the Difference Between == and is in Python 3.6
macrozheng
macrozheng
May 29, 2020 · Backend Development

Why Switch Beats If‑Else in Java: Up to 3.7× Faster (JMH Benchmark)

This article benchmarks Java's switch statement against equivalent if‑else chains using JMH, explains the underlying bytecode differences, shows how tableswitch and lookupswitch are generated, and demonstrates that switch can be up to 3.7 times faster as the number of branches grows.

JMHbytecodeif-else
0 likes · 16 min read
Why Switch Beats If‑Else in Java: Up to 3.7× Faster (JMH Benchmark)
Programmer DD
Programmer DD
May 27, 2020 · Fundamentals

How to Use Java Agents for Runtime Bytecode Manipulation with ASM

This article explains the basics of Java agents, demonstrates how to use premain and agentmain to modify bytecode at load time or during execution, and provides practical examples with ASM to monitor method execution time and capture method parameters and return values in running Java processes.

ASMInstrumentationPerformance Monitoring
0 likes · 18 min read
How to Use Java Agents for Runtime Bytecode Manipulation with ASM
vivo Internet Technology
vivo Internet Technology
Dec 11, 2019 · Fundamentals

An Introduction to V8 JavaScript Engine Architecture and Bytecode Execution

The article introduces V8’s architecture, tracing its shift from the memory‑heavy Full‑Codegen and Crankshaft compilers to the modern Ignition bytecode interpreter and TurboFan optimizing compiler, and explains how lexical analysis, AST parsing, bytecode generation, and runtime feedback together boost startup speed and reduce memory usage.

IgnitionJavaScript EngineTurboFan
0 likes · 11 min read
An Introduction to V8 JavaScript Engine Architecture and Bytecode Execution
Architecture Digest
Architecture Digest
Dec 11, 2019 · Fundamentals

Understanding Java String Concatenation, Constant Pool, and Bytecode Behavior

This article explains how Java handles String literals and concatenation, detailing the roles of the String constant pool, the effects of the '+' operator invoking StringBuilder.append, the placement of resulting strings in the heap versus the pool, and demonstrates these concepts through bytecode analysis and code examples.

Constant PoolMemory ManagementString
0 likes · 12 min read
Understanding Java String Concatenation, Constant Pool, and Bytecode Behavior
Youku Technology
Youku Technology
Nov 7, 2019 · Backend Development

Bytecode‑Based Method Invocation for High‑Performance Java Middleware

The article presents a bytecode‑generation technique that creates dynamic wrapper classes to invoke arbitrary Java methods with near‑native speed, avoiding reflection’s overhead, and details the CallerWrap base, generator, and thread‑safe cache implementation that together enable high‑performance middleware calls.

Reflectionbytecodecglib
0 likes · 11 min read
Bytecode‑Based Method Invocation for High‑Performance Java Middleware
Architect's Tech Stack
Architect's Tech Stack
Oct 15, 2019 · Backend Development

Understanding Java Object Behavior, Method Area, and Dynamic Tracing with Instrumentation, BTrace, and Arthas

This article explains how Java objects store behavior and state, describes the JVM method area where method bytecode resides, and demonstrates runtime class modification using java.lang.instrument.Instrumentation, BTrace scripts, and the Arthas diagnostic tool to solve real‑world debugging problems.

ArthasBTraceInstrumentation
0 likes · 14 min read
Understanding Java Object Behavior, Method Area, and Dynamic Tracing with Instrumentation, BTrace, and Arthas
Meituan Technology Team
Meituan Technology Team
Sep 5, 2019 · Backend Development

Unlocking Java Bytecode: From Structure to Runtime Enhancement

This article explains Java bytecode fundamentals, its class‑file layout, constant‑pool details, and then walks through practical bytecode‑enhancement techniques using ASM, Javassist, and the Instrument API to modify and reload classes at runtime for AOP, hot‑deployment and monitoring purposes.

ASMInstrumentationJavassist
0 likes · 28 min read
Unlocking Java Bytecode: From Structure to Runtime Enhancement
NetEase Media Technology Team
NetEase Media Technology Team
Jul 26, 2019 · Backend Development

Java Dynamic Bytecode Enhancement Technology Applications and Practices

Java dynamic bytecode enhancement uses agents, the Instrumentation API, and the Attach API to modify class bytecode at load time without source changes, enabling non‑intrusive AOP features that power tools such as JRebel for hot deployment, Pinpoint for distributed tracing, Arthas for diagnostics, JVM‑SANDBOX for sandboxed interception, and JRARP for method call recording and playback.

Dynamic EnhancementInstrumentationJRebel
0 likes · 18 min read
Java Dynamic Bytecode Enhancement Technology Applications and Practices
Amap Tech
Amap Tech
Jul 9, 2019 · Mobile Development

Using Java Bytecode for Android Module Dependency Analysis

The article explains how analyzing Java bytecode with tools such as Javassist during the Android Gradle transform phase yields precise, method‑level module dependency data—overcoming the limitations of Gradle trees, import scans, and IDE analysis—and provides a reliable way to map and enforce clean dependency structures in large Android codebases.

AndroidJavassistbytecode
0 likes · 10 min read
Using Java Bytecode for Android Module Dependency Analysis
Qunar Tech Salon
Qunar Tech Salon
May 9, 2019 · Mobile Development

Deep Dive into ASM for Android Bytecode Instrumentation and OkHttp Monitoring

This article explains how to use ASM to instrument Android bytecode for automatic click event tracking and OkHttp network request monitoring, detailing the Transform API, AOP/ASM techniques, custom ClassVisitor and MethodVisitor implementations, code injection strategies, and provides a complete open‑source example on GitHub.

ASMAndroidOkHttp
0 likes · 13 min read
Deep Dive into ASM for Android Bytecode Instrumentation and OkHttp Monitoring
Java Architecture Diary
Java Architecture Diary
May 1, 2019 · Backend Development

How CGLIB Generates Bean Copy Bytecode: A Deep Dive with Mica

This article examines the bytecode generated by CGLIB during Bean copying, compares scenarios with and without type conversion, explores Mica’s enhanced BeanCopier implementation, and provides concrete Java code examples to illustrate how field type differences affect generated methods and performance.

BeanCopyTypeConversionbytecode
0 likes · 12 min read
How CGLIB Generates Bean Copy Bytecode: A Deep Dive with Mica
转转QA
转转QA
Apr 18, 2019 · Backend Development

Java Instrumentation and ASM: Bytecode Enhancement Techniques and Jacoco Coverage

This article introduces Java instrumentation and the ASM bytecode manipulation library, explains how tools like Jacoco insert probe code on the fly, describes the structure of Java agents, and demonstrates practical bytecode editing methods and use‑cases such as monitoring, hot‑fixing, and mocking.

ASMagentbytecode
0 likes · 5 min read
Java Instrumentation and ASM: Bytecode Enhancement Techniques and Jacoco Coverage
Didi Tech
Didi Tech
Apr 4, 2019 · Mobile Development

DroidAssist – A Lightweight, Configuration‑Based Java Bytecode Manipulation Framework for Android

DroidAssist, an open‑source, configuration‑driven framework from Didi, lets developers replace or augment Android Java bytecode at compile time via simple XML rules—enabling non‑intrusive mocking such as swapping SharedPreferences implementations without source changes or extra dependencies, while supporting incremental builds and rich transformation capabilities.

AndroidDroidAssistMock
0 likes · 8 min read
DroidAssist – A Lightweight, Configuration‑Based Java Bytecode Manipulation Framework for Android
Meituan Technology Team
Meituan Technology Team
Feb 28, 2019 · Backend Development

Dynamic Java Tracing with Instrumentation, BTrace, and ASM

The article explains how Java developers can dynamically trace and modify program behavior at runtime using the Instrumentation API, ASM bytecode manipulation, and the safe, annotation‑driven BTrace tool, illustrating techniques such as class redefinition, method interception, and examples like JSP recompilation and Arthas diagnostics.

BTraceInstrumentationJVM
0 likes · 16 min read
Dynamic Java Tracing with Instrumentation, BTrace, and ASM
58 Tech
58 Tech
Jan 23, 2019 · Mobile Development

Implementing AOP‑Based Unified Processing in Android via Gradle Transform Plugins

This article explains how to replace invasive, manually‑invoked SDKs in Android with a unified, non‑intrusive solution using Aspect‑Oriented Programming, Gradle Transform plugins, and ASM bytecode manipulation, improving control, readability, and performance for large‑scale mobile platforms.

ASMAndroidGradle
0 likes · 8 min read
Implementing AOP‑Based Unified Processing in Android via Gradle Transform Plugins
Programmer DD
Programmer DD
Jan 22, 2019 · Backend Development

Why Your Java String Concatenation Is Slowing Down and How to Fix It

This article examines how different Java string concatenation techniques impact performance, demonstrates compile‑time optimizations and bytecode generation, and provides practical recommendations—such as using StringBuilder—to avoid costly object creation inside loops.

JDKJavapbytecode
0 likes · 8 min read
Why Your Java String Concatenation Is Slowing Down and How to Fix It
Qunar Tech Salon
Qunar Tech Salon
Nov 27, 2018 · Backend Development

Implementing AOP Method Timing with Java Instrumentation and ASM

This article explains how to use Java Instrumentation, the Attach API, JVMTI, and the ASM bytecode manipulation framework to inject AOP logic that measures and logs method execution time, providing a step‑by‑step guide with code examples and a discussion of practical considerations.

ASMJVMTIaop
0 likes · 16 min read
Implementing AOP Method Timing with Java Instrumentation and ASM
Beike Product & Technology
Beike Product & Technology
Oct 26, 2018 · Backend Development

Understanding JavaAgent: JVM Tool Interface, Implementation Principles, and Bytecode Manipulation Conflicts

This article explains the JavaAgent feature introduced after JDK 1.5, its reliance on JVMTI and JPLISAgent, how to write premain classes and class file transformers, the role of MANIFEST.MF, and analyzes conflicts between Javassist‑based and ByteBuddy‑based agents when they modify the same class.

ByteBuddyInstrumentationJVM
0 likes · 17 min read
Understanding JavaAgent: JVM Tool Interface, Implementation Principles, and Bytecode Manipulation Conflicts
Full-Stack Internet Architecture
Full-Stack Internet Architecture
Jul 27, 2018 · Fundamentals

Understanding Method Invocation in Java Bytecode

The article explains how Java bytecode implements method invocation by extracting a calculation into a static method, detailing the use of the invokestatic instruction, operand stack handling, constant pool references, and subsequent bytecode operations such as i2d, Math.pow, dadd, Math.sqrt, and type conversions.

JVMMethod Invocationbytecode
0 likes · 4 min read
Understanding Method Invocation in Java Bytecode
21CTO
21CTO
Mar 28, 2018 · Fundamentals

Unlocking Java Bytecode: How to Read, Decompile, and Rebuild Lost Source

This article explains why Java developers should understand bytecode, walks through JVM data types and stack architecture, demonstrates how to inspect compiled classes with javap, and shows practical examples of manual decompilation and reconstruction of source code using low‑level bytecode analysis.

JVMbytecodedecompilation
0 likes · 14 min read
Unlocking Java Bytecode: How to Read, Decompile, and Rebuild Lost Source
MaGe Linux Operations
MaGe Linux Operations
Feb 10, 2018 · Fundamentals

How Python Generators Work: From Yield to Bytecode Execution

This article explains the concept of Python generators, how the `yield` keyword creates iterator objects, the basic operations for iterating, practical examples such as infinite sequences, and dives into CPython's internal implementation including the call stack, generator creation, the `send`/`next` mechanisms, and bytecode execution details.

CPythonGeneratorsIterators
0 likes · 12 min read
How Python Generators Work: From Yield to Bytecode Execution
Programmer DD
Programmer DD
Nov 23, 2017 · Fundamentals

What Is JIT Compilation in Java and How Does It Boost Performance?

Java’s JIT compilation transforms bytecode into optimized machine code at runtime, offering benefits like hardware-specific optimization and portability, and the article explains compilation types, JVM flags for tracing JIT activity, inlining, and other optimizations such as dead code elimination and loop transformations.

CompilationJITJVM
0 likes · 7 min read
What Is JIT Compilation in Java and How Does It Boost Performance?
MaGe Linux Operations
MaGe Linux Operations
Oct 26, 2017 · Fundamentals

Unlocking Python Generators: How They Work Under the Hood

This article explains the inner mechanics of Python generators, covering how the interpreter executes functions, the role of stack frames and bytecode, the generator flag, and how send, yield, and StopIteration interact, illustrated with detailed code examples and disassembly.

GeneratorsPythonStopIteration
0 likes · 8 min read
Unlocking Python Generators: How They Work Under the Hood
DevOps
DevOps
Apr 7, 2016 · Fundamentals

The Story of a Java Class in the JVM

Through a whimsical tale of a class named Account, the article explains Java class loading, the hierarchy of classloaders, bytecode execution, the method area, stack, heap, garbage collection, and debugging, providing an engaging overview of JVM fundamentals.

Garbage CollectionJVMStack
0 likes · 13 min read
The Story of a Java Class in the JVM
Qunar Tech Salon
Qunar Tech Salon
Jan 5, 2015 · Fundamentals

Understanding Java Compilers and JVM Optimization Techniques

This article explains the role of Java compilers, compares static, client, server and tiered compilation, and describes common JVM optimizations such as dead‑code elimination, inlining, and loop transformations to improve Java application performance.

JITJVMbytecode
0 likes · 19 min read
Understanding Java Compilers and JVM Optimization Techniques