java - 对象和“.class”使用

时间:2012-08-15 01:40:27

标签: java object

我是新手,我已经涵盖了Java的所有基本概念。到目前为止,我已经遇到过使用Object类和使用“.class”语法创建对象引用的示例。

我试着寻找关于如何使用这2个概念的解释,但我没有得到清晰的图片。

我只看到,是的,我们可以创建对Object的引用。 但是这个参考的用途/用途是什么?

对于 .class 语法,我一直看到“反射”一词,但是当我在像 existingclass.class 这样的exsting类上使用这种语法时会发生什么?是否只是在< existingclass >中使用方法/数据?没有创建实例/对象?

示例将不胜感激。

2 个答案:

答案 0 :(得分:8)

  1. Object的引用可以指向任何对象;它可以指向不同时间的不同种类的物体。当你想要传入任何类型的对象时,它是一个很好的参数类型,当你想要能够返回任何类型的对象时,它是一个很好的返回类型。

  2. 符号 ClassName .class返回java.lang.Class的实例,代表 ClassName 。对于Java虚拟机中加载的每个类,都有一个java.lang.Class对象来表示该类。至于它有什么好处 - 它只适用于相当高级,神奇的东西,比如编写代码,询问类有什么方法,或者创建一个类的实例,只要你拥有的是用户输入的类的名称或从文件中读取。

    此外,当您了解线程时,您将看到类对象具有与静态方法相关的特殊用途;现在这不需要你了。作为一名Java程序员,您无需使用它;但是有一天,你可以。

答案 1 :(得分:1)

单词Java有三个含义:

  1. 编程语言;
  2. 虚拟机(JVM)规范;
  3. 和Java应用程序的运行时环境。
  4. 从编程语言的角度来看,它定义了语法和语法。它提供了如何使用该语言的说明。要了解.class,您最好参考JVM规范(是的,它已经超出了语言范围)。

    粗略地说,你的程序以字节代码格式被彻底编译成.class文件,包括超类名称inherented,接口实现,以及最重要的编译代码等。

    运行程序时,应将其完成的所有.class加载到JVM中。 IIRC,类首次被程序引用时加载,而不是当前程序将被运行,例如在导入说明中或通过代码中的直接.class引用。

    为了回答您的问题,.class语法不仅用于引用类信息,例如方法定义或静态变量,但也强制执行JVM加载特定的类。 (如果您熟悉JDBC或将来有机会使用它,您会发现.class语法可用于强制加载数据库驱动程序)