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

ClassObject.getClass,ClassName.class和Class.forName(“ ClassName”)之间的区别

佟翰林
2023-03-14
问题内容

我想了解Class.forName(“
ClassName”)和ClassObject.getClass是否都返回该类的运行时实例。然后为什么在比较从这两个对象获得的结果Class对象时获取一个布尔值false(如果我们使用==或equals进行比较)。
我也想知道在类名上调用.class方法的确切用途。我读到它是在编译时等确定的,但目的是什么。Class.forName(“ ClassName”)是否足够?
谢谢


问题答案:

Class.forName加载并初始化类。obj.getClass()返回加载到permgen中的类对象。如果该类由同一类加载器加载,==则必须返回true。当您看到false==比较时,意味着它们由不同的类加载器加载。



 类似资料:
  • 问题内容: 我们可以通过3种方法获得Class类对象: MyClass.class obj.getClass Class.forName(“ className”) 我不了解:和之间的区别。 因为两者都需要类名。 问题答案: forName是“类”类的静态方法。我们需要提供所需类别的完全限定名称。当在运行时知道类名时可以使用此方法。 .class不是方法,它是关键字,可以与int之类的原始类型一起

  • 问题内容: 和之间有什么区别? 我不了解其中的重大区别(我已经阅读了一些有关它们的信息!)。请你帮助我好吗? 问题答案: 也许一个示例演示如何使用两种方法将有助于你更好地理解事物。因此,请考虑以下类: 如其javadoc中所述,调用将返回与具有给定字符串名称的类或接口关联的对象,即它返回受type变量影响的对象。 然后,调用创建该 对象表示的类的新实例。就像通过带有空参数列表的表达式实例化该类。换

  • 问题内容: 之间有什么区别 和 有时,我在Internet上看到了一些示例,而这些示例将代替它们,它们都是简单的程序。我用来做作业,其他人也一样 问题答案: 第一个将为您的班级分配默认的可见性,即(即:在同一范围内可访问)。 第二个使得它,对任何其他类都是可见的。 参考:控制对类成员的访问

  • 问题内容: 以下是2个代码段 第一个使用ClassLoader类加载指定的类 第二个使用Class.forName()加载指定的类 上述方法之间有何区别?哪一个服务于哪个目的? 问题答案: 快速解答(无代码示例) 使用显式方法,您可以灵活地从 不是 默认ClassLoader的ClassLoader中加载类。在你的情况下,你使用的是默认系统类加载器,所以它提供了类似的总体结果(与最终目标的差异的实

  • 如果{}和if之间有什么区别 ? 举个例子 vs. 以及具有和的类? 举个例子 VS

  • 问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子: