Class 类的实例表示正在运行的 Java 应用程序中的类和接口。Class是程序中各个java类和接口的统称。
众多的人-->Person,众多的java对象-->Class
每个类被加载后, 系统就会为该类生成一个对应的 Class 对象, 通过该 Class 对象就可以访问到 JVM 中的这个类。
Java 程序中获得Class 对象通常有如下三种方式:
1.使用 Class 的 forName() 静态方法
2.调用某个类的 class 属性 (无须调用方法, 性能更好)
3.调用某个对象的 getClass() 方法
一旦获取了某个类的 Class 对象之后, 程序就可以调用 Class 对象的方法来获得该对象和该类的真实信息了
Class类常见的方法
newInstance() :创建此 Class 对象所表示的类的一个新实例。
isPrimitive() :判定指定的 Class 对象是否表示一个基本类型。
isArray() :判定此 Class 对象是否表示一个数组类。
getPackage() :获取此类的包。
getName() :以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
getInterfaces() :确定此对象所表示的类或接口实现的接口。
forName(String className) :返回与带有给定字符串名的类或接口相关联的 Class 对象
java中9个预定义的Class实例对象
基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)
和关键字 void 也表示为 Class 对象。
public class Test {
public static void main(String[] args) throws Exception{
/**
* Class代表一份字节码,一个对象是该类字节码产生的一个实例
* 使用new关键字:类的装载,连接,初始化一次性完成了。
* 使用Class.forName:默认的情况下是类装载、链接和初始化的,
* 相当于Class.forName(className, true, currentLoader)(其中的true和false是管是否初始化的)。
* 如果是true的,那么装载、连接、并初始化;如果false,仅仅装载和连接。
*/
String s = "";
Class cls1 = s.getClass();//方式1
Class cls2 = String.class;//方式2
Class cls3 = Class.forName("java.lang.String");//方式3
System.out.println(cls1==cls2);//true
System.out.println(cls2==cls3);//true
System.out.println(cls1.isPrimitive());//false
System.out.println(int.class.isPrimitive());//true
System.out.println(int.class==Integer.class);//false
System.out.println(Integer.TYPE==int.class);//true
System.out.println(int[].class.isPrimitive());//false
System.out.println(int[].class.isArray());//true
}
}
分享到:
相关推荐
Java中获取Class对象是Java基础知识中的一个重要部分,通过Class类可以获取Class对象,Class对象是Java虚拟机在加载类时自动构造的。下面将详细介绍通过Class类获取Class对象的三种方式。 方式1:通过Object类的...
Class类是Java反射机制的核心,它代表了运行时的类信息。本资源将引导初学者了解如何使用反射和Class类进行类的获取和操作。 首先,让我们了解如何获取Class对象。在Java中,有三种主要方式来获取Class对象: 1. ...
总的来说,"JAVA反射机制的入门代码"是初学者理解Java反射机制的好教材,通过它,你可以学习如何动态地操作Java类,提高代码的灵活性,并掌握处理`properties`文件的基础方法。在深入学习和实践中,你将进一步理解...
反射机制的核心在于`java.lang.Class`类,它是Java反射的基础。此外,`java.lang.reflect`包中的`Method`、`Field`和`Constructor`类分别代表类的方法、字段和构造器。 2. `Class`类: `Class`类是所有Java类的元...
2. 使用Class类可以实现类的反射机制,动态地加载和使用类。 3. 使用Class类可以实现对象的克隆和序列化。 Java.lang.Class类是Java语言中一个非常重要的类,它的理解和掌握是学好Java的基础。通过掌握Class类,...
### JAVA基础-反射-枚举知识点详解 #### 一、反射概述 反射是Java语言提供的一种能在运行时分析类和对象的能力。通过反射,我们可以在程序运行时动态地获取类的信息(如类名、方法、构造函数等)并操作这些信息。 ...
Java的反射机制是通过`java.lang.reflect`包中的类和接口实现的,主要包括`Class`、`Constructor`、`Method`和`Field`等。`Class`类是所有类的元类,它包含了关于类的所有信息,包括类名、构造方法、方法、字段等。...
反射基础”这一课程中,徐培成老师会深入讲解这个核心概念。 反射的基石是`java.lang.Class`类,它代表了Java运行时的类型信息。通过`Class`对象,我们可以获取类的构造器、方法、字段等信息,甚至可以在运行时动态...
首先,让我们了解Java反射的基础概念。在Java中,`java.lang.Class`类代表运行时的类信息。我们可以使用`Class.forName()`方法或者对象的`getClass()`方法来获取`Class`对象。一旦我们有了`Class`对象,就可以进一步...
在上面的代码中,首先通过 `Class.forName(className)` 获取该类的 Class,然后配置参数的 Class 数组,接着通过 `ownerClass.getMethod(methodName, argsClass)` 获取该类的静态方法,最后通过 `method.invoke(null...
一、反射基础 在 Java 中,反射机制是通过 Class 类实现的。Class 类是 java.lang 包中的一个类,存在于 JDK 中。Class 类的实例表示 Java 应⽤运⾏时的类(class、enum)或接⼝(interface 和 annotation)。每个 ...
反射的核心类有`Class`、`Constructor`、`Field`和`Method`。 1. **Class对象**:每个类在运行时都有一个对应的`Class`对象,它包含了类的所有信息。我们可以通过`Class.forName()`或`object.getClass()`获取到。 ...
本文将详细介绍Java基础中的反射机制,包括Class类、ClassLoader类、Constructor、Method、Field类的用法,以及动态代理机制。 Class类 Class类是Java中一个特殊的类,用于描述类本身的信息。每个类在JVM中都有一...
根据提供的文件信息,我们将详细解析Java基础中关于反射的相关知识点,包括Class类的理解、Java的类加载机制、ClassLoader的使用、反射机制的概念、Constructor、Method和Field类的用法以及动态代理的理解和掌握。...
Class类是Java反射机制的基础,它代表了Java中的每一个类型。每个Java类在内存中都有一个对应的Class对象,这个对象包含了该类的所有信息,如类名、构造函数、方法、字段等。Class对象可以通过以下三种方式获取: 1...
适用于有一定Java编程基础的开发人员,希望了解和应用Java反射机制的使用者。 使用场景及目标 使用反射机制的典型场景包括以下几个方面: 在运行时动态加载和创建类对象。 通过反射调用对象的方法和访问对象的字段...
获取Class对象是反射的基础,可以通过以下几种方式: a) 从对象的实例获取:`Class c = mystery.getClass();` b) 从子类的实例获取:`Class c = t.getClass();` 其中 `t` 是某个子类的实例。 c) 知道类名,可以...
Java反射API提供了Class类,它是所有类的元类,通过Class对象我们可以获取类的信息,包括构造函数、方法、字段等。例如,我们可以使用`Class.forName()`方法加载类,然后通过`getDeclaredFields()`获取类的所有声明...
- **Class类**用于表示`.class`文件,它是所有Java类的根对象。 - **获取Class对象的方式**: - `类名.class`:推荐使用这种方式。 - `对象.getClass()`:对于已有的对象,可以直接使用这个方法。 - `Class.for...