Paoka1's Blog

Welcome to my blog

本文简要介绍 Java Agent,快速入门 Java Agent

什么是 Java Agent

Java Agent 本质上可以理解为一个插件,该插件就是一个精心提供的 Jar 包。只是启动方式和普通 Jar 包有所不同,对于普通的 Jar 包,通过指定类的 main 函数进行启动。但是 Java Agent 并不能单独启动,必须依附在一个 Java 应用程序运行,在面向切面编程方面应用比较广泛

阅读全文 »

Java ASM 简介

ASM 简介

Java ASM(Java Assembly Language)是一个 Java 字节码操作框架,它可以通过修改字节码来实现代码的动态生成和修改。它可以用于许多应用场景,如代码转换、优化、代码生成、动态字节码增强等。在 Java 开发中,ASM 已经成为一个非常重要的编程工具

ASM 和 Javassist 都是 Java 字节码操作库。它们的主要区别在于 ASM 是一个基于事件模型的库,而 Javassist 是一个基于源代码的库。ASM 提供了一个 API,可以以字节码的形式读取、修改和生成 Java 类。它的设计具有高速和轻量级的特点,常常被用来进行一些高级的优化和增强。Javassist 则允许开发者以 Java 代码的形式来生成、修改和操作类文件,使用起来更加方便。两者虽然有不同的设计目的和操作方式,但在某些场景下可以达到相同的效果

阅读全文 »

对 Java Javassist 使用的简单介绍

Javassist 简介

Javassist(Java 编程助手)使 Java 字节码操作变得简单。它是一个用于在 Java 中编辑字节码的类库。它使 Java 程序可以在运行时定义新类,并在 JVM 加载它时修改类文件。与其他类似的字节码编辑器不同,Javassist 提供了两个级别的 API:源级别和字节代码级别。如果用户使用源代码级 API,则他们可以在不了解 Java 字节码规范的情况下编辑类文件。整个 API 仅使用 Java 语言的词汇表进行设计。甚至可以以源文本的形式指定插入的字节码。Javassist 可以即时对其进行编译。另一方面,字节码级别的 API 允许用户像其他编辑器一样直接编辑类文件

阅读全文 »

简述 Java 类加载器和双亲委派模型

Java 类加载器有什么用

顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class文件)。类加载器负责读取 Java 字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的newInstance()方法就可以创建出该类的一个对象。实际的情况可能更加复杂,比如 Java 字节代码可能是通过工具动态生成的,也可能是通过网络下载的

阅读全文 »
0%