当前位置: 首页 > 面试题库 >

什么是com.sun.proxy。$ Proxy

莘绍元
2023-03-14
问题内容

我已经看到,当错误在不同的框架(例如,实现EJB规范的框架或某些JPA提供程序的框架)中发生深层错误时,stacktrace将包含诸如这样的类com.sun.proxy.$Proxy。我知道什么是代理,但是我正在寻找更技术性和更特定于Java的答案。

  1. 这些是什么?
  2. 它们是如何创建的?
  3. 与JVM有什么关系?它们是特定于JVM实现的吗?

问题答案:
  1. 代理是在运行时创建和加载的类。这些类没有源代码。我知道您想知道如果没有针对他们的代码,如何让他们做一些事情。答案是,在创建它们时,您指定一个实现的对象,该对象InvocationHandler定义了在调用代理方法时要调用的方法。

  2. 您可以通过调用创建它们

    Proxy.newProxyInstance(classLoader, interfaces, invocationHandler)
    

参数为:

1. `classLoader`。一旦生成了类,就使用该类加载器加载它。
2. `interfaces`。一类必须全部是接口的类对象。生成的代理实现所有这些接口。
3. `invocationHandler`。这就是您的代理知道调用方法时该怎么做的方式。这是一个实现的对象`InvocationHandler`。当从任何受支持的接口,或一个方法`hashCode`,`equals`或者`toString`被调用,该方法`invoke`调用的处理程序中,经过`Method`用于向被调用的方法和传递的参数对象。

有关更多信息,请参见Proxy该类的文档。

  1. 1.3版之后的JVM的每个实现都必须支持这些实现。它们以特定于实现的方式加载到JVM的内部数据结构中,但可以保证正常工作。


 类似资料:
  • 问题内容: 什么是selenium? 当您打开Selenium的官方页面时,您首先读到的是“什么是Selenium?”中的“ Selenium automates browser”。部分。“selenium的哪个部分适合我?”部分 下面提供了Selenium WebDriver和Selenium IDE之间的选择。由此,我推断出Selenium是一组工具,并且该集合包括IDE,WebDriver

  • 硒是什么? 当你打开Selenium的官方页面,首先看到的是“什么是Selenium”中的“Selenium自动浏览器”。节。“硒的哪一部分对我合适?”下面提供了Selenium WebDriver和Selenium IDE之间的选择。由此,我推断Selenium是一个工具集合,该集合包括IDE、WebDriver API(语言绑定)、网格、Selenium独立服务器、浏览器驱动程序。一个人必须下

  • 本文向大家介绍什么是事务?什么是锁?相关面试题,主要包含被问及什么是事务?什么是锁?时的应答技巧和注意事项,需要的朋友参考一下 答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔

  • 我在使用远程EJB对象时遇到问题。JNDI查找成功,但转换为对象和后续使用失败。EJB接口和实现如下: UserViewBeanRemote.java 用户视图Bean.java 取消注释@ Remote(userviewbeanremote . class)不会更改此行为。该查找在以下文件中完成: Lookup.java //用户查找名称:ejb:/BooksPointEJB//UserView

  • 我在这里读到 写入共享引用类型<代码> 理解<代码> 在另一个地方,我阅读了以下代码: 结构人中的a是什么 名称的含义是什么: 如果想避免使用

  • 我几天前听说了Docker的事,想过去看看。 但事实上,我不知道这个“容器”的用途是什么? 什么是容器? 它能取代一个专门用于开发的虚拟机吗? 简单地说,在公司中使用Docker的目的是什么?主要的优势?