Classjava

//java 类在编译后会产生一个以.class结尾的字节码文件//该文件内存储了Class对象的相关信息,Class对象表示的是类在运行时的类型信息//Class与java.lang.reflect构成了java的反射技术//当我们要使用类时,例如使用new 操作符实例化一个新对象,访问类的静态方法,//jvm会先检查该类的有无加载,若有加载了就会直接进行相应的操作//若检查到没有加载,jvm就会先去加载这个类的对应的字节码文件(这里会进行相应的检查)//当加载成功后,就可以进行相应的操作了public class ClassTest{ public static void main(String [] args) throws Exception{  System.out.println(“before loading Circle.”);  // 可以指定要加载的类  Class.forName(“Circle”); // 这里需要捕获异常或者抛出异常到下一级  System.out.println(“after loading Circle.”);  System.out.println(“before loading Rectangle.”);  Rectangle re = new Rectangle();  System.out.println(“after loading Rectangle.”);  System.out.println("************************************");  System.out.println(“before loading A1.”);  System.out.println(A1.trueFinal);    System.out.println(“before loading A2.”);  System.out.println(A2.noFinal);  System.out.println("************************************");    //使用类字面常量来得到Class,利用反射来构建实例对象(调用的是默认构造函数)  // 调用类字面常量不会触发类的初始化  Class<?> c = A3.class;  System.out.println(“before loading A3.”);  A3 a3 = (A3)c.newInstance();  System.out.println("************************************");  //根据运行结果:在继承关系里,在类的初始化时总是先初始化父类,在初始化子类  //实例化时也是如此  System.out.println(“before loading D1.”);  D1 d1 = new D1(); }} class Circle { static {  //类在加载初始时,会执行这段static代码块  System.out.println(“loading Circle…”); }} class Rectangle { static {  //类在加载初始时,会执行这段static代码块  System.out.println(“loading Rectangle…”); }} class A1 { // 编译期常量,不会触发类的初始化 public static final int trueFinal = 10;  static {  //类在加载初始时,会执行这段static代码块  System.out.println(“loading A1…”); }} class A2 { // 静态常量,触发类的初始化 public static int noFinal = 5; static {  //类在加载初始时,会执行这段static代码块  System.out.println(“loading A2…”); }} class A3 { static {  //类在加载初始时,会执行这段static代码块  System.out.println(“loading A3…”); }} class B1 { static {  System.out.println(“loading B1”); } public B1(){  System.out.println(“B1’s instance”); }} class D1 extends B1{ static {  System.out.println(“loading D1”); } public D1(){  System.out.println(“D1’s instance”); }}

作者:努力奋斗的周周
来源:CSDN
原文:https://blog.csdn.net/qq_23013309/article/details/80550357
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值