
【京东|什么是 Java 代理?】Java 代理通过提供使我们能够侵入 JVM 中正在运行的 Java 程序的服务而在最低级别工作 。 如果操作不正确 , Java 的这个强大而不可思议的部分具有使 JVM 崩溃的能力 。 本文简要介绍了这个概念并介绍了它的工作原理 。
概述
代表 Java 代理的类显然只不过是 Java API 库中的任何其他类 。 但是 , 它们的特别之处在于它们遵循某种约定 , 该约定使 Java 代码能够拦截在 JVM 中运行的另一个应用程序 。 目的只是让代理调查或修改字节码 。 这是一个强大而又不可思议的功能 , 超出了 Java 程序通常的功能 。 在某种程度上 , 它可以闯入程序并修改字节码或造成破坏 。 了解这不是添加到 Java 中的新技术或新特性 。 自 JDK 1.5 以来 , 它一直是库的一部分 。 这意味着使用它们也有一些真正的好处 。 但是 , 在讨论它们的好处以及如何使用它们之前 , 让我们先看看我们可以在 Java 中哪里找到它们 。
Java 代理和检测
Java 代理是 Java Instrumentation API 的一部分 。Instrumentation API 提供了一种修改方法字节码的机制 。 这可以静态和动态地完成 。 这意味着我们可以通过向程序添加代码来更改程序 , 而无需触及程序的实际源代码 。 结果会对应用程序的整体行为产生重大影响 。
Java 代理和检测 API 位于名为 java.lang.intrumentation 的包中 。
Java 代理的使用
Java 代理可以有多种用途 , 例如面向方面编程 (AOP)、变异测试、分析等 。AOP 通常在不更改代码的情况下向现有程序添加日志记录或安全性等行为 。它使用 Java 代理来操作字节码 , 并将其特性与程序结合起来 。监视 JVM 级别的参数 , 如对象创建、垃圾收集、线程执行等 , 是分析器的工作 。分析工具在分析执行程序的 JVM 参数时大量使用 Java 代理 。
在许多其他情况下 , Java 代理和检测 API 都非常方便 。
结论
尽管 Java 代理和 Java Instrumentation API 在应用程序开发中的使用并不频繁 , 但了解它们的全部含义可以阐明 Java 的许多其他方面 。
- ios16|未受到电商冲击,理发店为啥还是纷纷倒闭?过来人说出真相
- 京东|裁员不忘膈应人,这家互联网大厂送的离职礼物恶心到我了!
- 有人觉得中暑就是热出来的,吃一些退烧药就好了,这种做法 蚂蚁庄园今日答案6月28日
- 浮甘瓜于清泉,沉朱李于寒水”描述的是什么场面 蚂蚁庄园今日答案6月28日
- 为验证人类和黑猩猩,是否会产生新的后代,科学家找来5位姑娘!
- 喜马拉雅山出现的“雪人”是何生物?目击者:智商高、攻击性强
- 为什么科学家表示人类“灭绝”的可能性极低?这些理由你赞同吗?
- 显卡|这就是RTX 4090 Ti显卡?又厚又重,超过三槽要1200W电源
- 为什么科学家知道太阳的原理,却无法制造出人造太阳
- 土耳其发现四肢爬行人群,这是咋回事?科学家警告:人类要留心了
