Java高效特性:反射(二)之获取Class对象的四种方式及其区别 (day06)

运行环境

JDK8+IntelliJ IDEA 2018.3 x64

Java有四种方式可以获得Class对象

1、通过对象名 .getClass() 方法获取。

2、通过类名 . class方式获得。

3、通过Class.forName()方法获得。

  4、通过ClassLoader获得。

代码示例

 1 package com.chenmengfan.demo1;
 2 
 3 /*
 4 * 获取class的四种方式
 5 * */
 6 public class Demo1 {
 7     public static void main(String[] args) {
 8         //new一个对象
 9         Student stu = new Student();
10 
11         // .getClass()
12         Class clzStu1 = stu.getClass();
13 
14         // .Class()
15          Class clzStu2 = Student.class;
16 
17         // Class.forName()
18         Class clzStu3 = null;
19         try {
20             clzStu3 = Class.forName("com.chenmengfan.demo1.Student");
21         } catch (ClassNotFoundException e) {
22             e.printStackTrace();
23         }
24 
25         // ClassLoader
26         Class clzStu4 = null;
27         try {
28             clzStu4 = ClassLoader.getSystemClassLoader().loadClass("com.chenmengfan.demo1.Student");
29         } catch (ClassNotFoundException e) {
30             e.printStackTrace();
31         }
32 
33         //比较
34         System.out.println(clzStu1 == clzStu2);
35         System.out.println(clzStu1 == clzStu3);
36         System.out.println(clzStu1 == clzStu4);
37         System.out.println(clzStu2 == clzStu3);
38         System.out.println(clzStu2 == clzStu4);
39         System.out.println(clzStu3 == clzStu4);
40 
41     }
42 }

总结

  真正的勇敢,不是从不害怕,而是充分了解困难和风险,选择继续前行;

  是知道人生路上总有艰难坎坷,依然有勇气拥抱生活、笑迎挫折。每一个迎风向前的人,都是自己的英雄。

  

原文地址:https://www.cnblogs.com/cmf12/p/13555360.html