Class对象(字节码对象)


Class对象(字节码对象)

        java世界里,一切都是对象,可分为两种对象,Class对象和实例对象。每个类的运行时的类型信息就是用Class对象表示的。它包含了与类有关的信息。其实我们的实例对象就通过Class对象来创建的。

       每一个类都有一个Class对象,每当编译一个新类就产生一个Class对象,基本类型 (boolean, byte, char, short, int, long, float, and double)有Class对象,数组有Class对象,就连关键字void也有Class对象(void.class)。Class对象对应着java.lang.Class类,如果说类是对象抽象和集合的话,那么Class类就是对类的抽象和集合。

        Class对象是在类加载的时候由java虚拟机(JVM)以及通过调用类加载器中的 defineClass 方法自动构造的

一个类被加载到内存到供我们使用三个阶段:加载,连接,初始化

        所有的类都是在对其第一次使用时,动态加载到JVM中的(懒加载)。当程序创建第一个对类的静态成员的引用时,就会加载这个类。使用new创建类对象的时候也会被当作对类的静态成员的引用。因此java程序程序在它开始运行之前并非被完全加载,其各个类都是在必需时才加载的。这一点与许多传统语言都不同。

 

 

 

Class对象的三种获取方式:

  1. 类名.class——不会自动加载
  2. 实例化对象.getClass()
  3. Class.forName(包名+类名)——如果类没被加载呢,贼会自动加载

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM