欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

.class和getClass()

程序员文章站 2022-07-16 22:08:07
...
    java世界里一切皆是对象,所有类都默认继承Object类。        Class 类是java中的类型类,每个java对象的class类型都属于Class类型类的实例对象。       
     Class类也可以看成一个对象。   
          如何获取一个java对象的类型类       
     1,使用Object.getClass()方法。此处的Object需要先示例对象,才能调用该方法       
      2,使用java类.class 方法获取,此处为静态获取,不需要实例化对象       
       3,Class.forName("")  Class类的静态方法,也可以获取         

public static void main(String[] args) {
try {
Class clazz = Class.forName(""); //动态获取一个Class类型。运行时加载
clazz.getClass();//动态获取Class类型,这是对象实例化后的方法,基类Object类的方法。编译时加载。getClass()不是静态方法,不能用于static修饰的对象、方法、静态块
Class clazz1 = Map.class;//静态获取Class类型。不需要对象实例化,根据类名即可调用。编译时加载
//clazz.getClass(), Map.class效果是一样的,得出的结果进行equal比对是相等的
new HashMap();//静态加载。
} catch (ClassNotFoundException e) {
e.printStackTrace();
}}

(2).Test.class;

 在编译时确定,返回当前类的类对象实例。不会加载静态变量

 获得父类类对象: Test.class.getSuperclass()

(3).Class.forName(“类路径”);会加载静态变量,比如jdbc驱动利用这个加载一些静态属性

 通过静态方法获取类对象,Class.forName("com.wan.Test");

在运行期间,如果我们要产生某个类的对象,Java虚拟机(JVM)会检查该类型的Class对象是否已被加载。如果没有被加载,JVM会根据类的名称找到.class文件并加载它。一旦某个类型的Class对象已被加载到内存,就可以用它来产生该类型的所有对象

相关标签: 笔记