千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java类的两种引用方法

java类的两种引用方法

来源:千锋教育
发布人:qyf
时间: 2022-08-09 16:51:00 1660035060

java类的两种引用方法

  1、类的主动引用,一定会发生类的初始化。当虚拟机启动,先初始化main方法所在的类

  实例化一个类的对象

  调用类的静态成员(除了final常量)和静态方法

  使用java.lang.reflect包的方法对类进行反射调用

  当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类

  2、类的被动引用,不会发生类的初始化

  当访问一个静态域时,只有真正声明这个域的类才会被初始化。如:当通过子类引用父类的静态变量,不会导致子类初始化

  通过数组定义类引用,不会触发此类的初始化

  引用常量不会触发此类的初始化(常量在链接阶段就存入调用类的常量池中了)

  实例

  package com.volcano.reflection;

  //什么时候会发生类的初始化,除了第一个注释一直开着,其他都要独立打开测试,否则不准确

  public class TestReflection3 {

  static {

  //1.虚拟机启动就会最先初始化main方法所在的类 会

  System.out.println("main方法被加载");

  }

  public static void main(String[] args) throws ClassNotFoundException {

  //2.实例化一个对象 会

  //new Father();

  //3.调用类的静态成员(除了final常量)和静态方法 会

  //System.out.println(Son.a);

  //4.使用java.lang.reflect包的方法对类进行反射调用 会

  //Class cls = Class.forName("com.volcano.reflection.Father");

  //5.当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类 会

  //new Son();

  //6.当访问一个静态域时,只有真正声明这个域的类才会被初始化 不会

  //System.out.println(Father.a);//两个都是只加载Father

  //System.out.println(Son.a);//因为a是Father的静态成员

  //7.通过数组定义类引用,不会触发此类的初始化 不会

  //Father[] fathers = new Father[10];

  //8.引用常量不会触发此类的初始化 不会

  //System.out.println(Father.B);

  }

  }

  class Father{

  static {

  System.out.println("Father被加载");

  }

  static int a=100;

  static final int B = 300;

  }

  class Son extends Father{

  static {

  System.out.println("Son被加载");

  }

  static int c=200;

  }

  以上就是java类的两种引用方法,希望对大家有所帮助。更多关于“java培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT