Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java反射与Java调试接口(JDI)_Java_Debugging_Reflection_Jdi - Fatal编程技术网

Java反射与Java调试接口(JDI)

Java反射与Java调试接口(JDI),java,debugging,reflection,jdi,Java,Debugging,Reflection,Jdi,使用Java反射和Java调试接口之间有什么区别? 何时可以使用其中一个,何时可以使用另一个?从 JavaTM调试接口(JDI)是一个高级Java API,为需要访问(通常是远程)虚拟机运行状态的调试器和类似系统提供有用的信息。 JDI提供对正在运行的虚拟机的状态、类、数组、接口和基元类型以及这些类型的实例的内省访问 JDI还提供了对虚拟机执行的显式控制。暂停和恢复线程的能力,以及设置断点、观察点等。。。异常通知、类加载、线程创建。。。能够检查挂起线程的状态、局部变量、堆栈回溯 从 反射通常用于

使用Java反射和Java调试接口之间有什么区别? 何时可以使用其中一个,何时可以使用另一个?

JavaTM调试接口(JDI)是一个高级Java API,为需要访问(通常是远程)虚拟机运行状态的调试器和类似系统提供有用的信息。 JDI提供对正在运行的虚拟机的状态、类、数组、接口和基元类型以及这些类型的实例的内省访问

JDI还提供了对虚拟机执行的显式控制。暂停和恢复线程的能力,以及设置断点、观察点等。。。异常通知、类加载、线程创建。。。能够检查挂起线程的状态、局部变量、堆栈回溯

反射通常用于需要能够检查或修改Java虚拟机中运行的应用程序的运行时行为的程序。这是一个相对高级的特性,应该只由对该语言的基本知识有很强掌握的开发人员使用。考虑到这一点,反射是一种强大的技术,可以使应用程序执行本来不可能执行的操作

我看到有一点重叠,但对我来说,如果您计划创建自己的调试器,或者如果您有一些无法用任何现有调试器解决的疯狂问题,则可以使用JDI。您可以在运行时使用反射作为对象检查/操作的一种手段,以满足一些非常规的应用程序需求,例如创建自己的
类加载器
注释