什么是 Java 代理?

Java 代理通过提供使我们能够侵入 JVM 中正在运行的 Java 程序的服务而在最低级别工作。如果操作不正确,Java 的这个强大而不可思议的部分具有使 JVM 崩溃的能力。本文简要介绍了这个概念并介绍了它的工作原理。

概述

代表 Java 代理的类显然只不过是 Java API 库中的任何其他类。但是,它们的特别之处在于它们遵循某种约定,该约定使 Java 代码能够拦截在 JVM 中运行的另一个应用程序。目的只是让代理调查或修改字节码。这是一个强大而又不可思议的功能,超出了 Java 程序通常的功能。在某种程度上,它可以闯入程序并修改字节码或造成破坏。了解这不是添加到 Java 中的新技术或新特性。自 JDK 1.5 以来,它一直是库的一部分。这意味着使用它们也有一些真正的好处。但是,在讨论它们的好处以及如何使用它们之前,让我们先看看我们可以在 Java 中哪里找到它们。

image.png

Java 代理和检测

Java 代理是 Java Instrumentation API 的一部分。 Instrumentation API 提供了一种修改方法字节码的机制。这可以静态和动态地完成。这意味着我们可以通过向程序添加代码来更改程序,而无需触及程序的实际源代码。结果会对应用程序的整体行为产生重大影响。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

Java 代理和检测 API 位于名为 java.lang.intrumentation 的包中。

Java 代理的使用

Java 代理可以有多种用途,例如面向方面编程 (AOP)、变异测试、分析等。 AOP 通常在不更改代码的情况下向现有程序添加日志记录或安全性等行为。 它使用 Java 代理来操作字节码,并将其特性与程序结合起来。 监视 JVM 级别的参数,如对象创建、垃圾收集、线程执行等,是分析器的工作。 分析工具在分析执行程序的 JVM 参数时大量使用 Java 代理。

在许多其他情况下,Java 代理和检测 API 都非常方便。

结论

尽管 Java 代理和 Java Instrumentation API 在应用程序开发中的使用并不频繁,但了解它们的全部含义可以阐明 Java 的许多其他方面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值