70.反射-Class类和class实例

Class类:

用来描述类或者借口的类型,描述类的类

Class类的实例:

在JVM中的一份份字节码,Class实例表示在JVM中的类或者接口,枚举是一种特殊的类,注解是一种特殊的接口.

/*
当程序第一次使用某一个java.util.Date类的时候,就会把该类的字节码对象加载进JVM并创建出一个Class对象.

此时的Class对象就表示java.utilDate的字节码.

Class类就可以表示N个类的字节码对象,问题,到底怎么区分Class类此时表示的那一个类的字节码呢,
为了解决该问题,Class类的设计者提供了泛型-->Class<T>

*/
java.lang.String类的字节码类型:Class<java.lang.String>;

java.util.Date类的字节码类型:Class<java.util.Date>;

java.util.ArrayList类的字节码类型:Class<java.util.ArrayList>;

如何创建Class对象,如何来表示一个字节码对象?

/*
 *需求:获取java.util.Date类的字节码对象
 * 方式1:使用class属性
 * 方式2:通过对象的getClass方法来获取,getClass是Object类中的方法
 * 方式3:通过Class类中的静态方法forName(String className);
 */
    //1.
    Class<com.java520.class01.Person> clz1 = com.java520.class01.Person.class;
    System.out.println(clz1);
    
    //2.
    com.java520.class01.Person p = new com.java520.class01.Person();
    System.out.println(p.getClass());
    
    //3.
    Class<?> clz3 = Class.forName("java.util.Date");
    System.out.println(clz3);
    
//注意!同一个类在JVM中只存在一份字节码对象,也就是说上述ckl1==p
以后最多使用的是第三种,在 框架中大量使用



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,506评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,625评论 18 399
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,302评论 6 13
  • 太过嫉妒 嫉妒你的美貌 才华 和浮云流水的风度 想着能和你并肩 以肩与肩平行的高度 看你笑 看你哭 看你吞吐凡世的...
    林静子的梦不是梦阅读 136评论 0 0
  • 《什么是爱情》 不要说什么一定要把自己的第一次献给真爱,你才多大,懂得什么是爱情? 《你心中住着人》 你心中住着人...
    何鲸洛阅读 354评论 0 0

友情链接更多精彩内容