1、类的主动引用,一定会发生类的初始化。当虚拟机启动,先初始化main方法所在的类
实例化一个类的对象
调用类的静态成员(除了final常量)和静态方法
使用java.lang.reflect包的方法对类进行反射调用
当初始化一个类,如果其父类没有被初始化,则先会初始化它的父类
2、类的被动引用,不会发生类的初始化
十天学会易语言图解教程用图解的方式对易语言的使用方法和操作技巧作了生动、系统的讲解。需要的朋友们可以下载看看吧!全书分十章,分十天讲完。 第一章是介绍易语言的安装,以及运行后的界面。同时介绍一个非常简单的小程序,以帮助用户入门学习。最后介绍编程的输入方法,以及一些初学者会遇到的常见问题。第二章将接触一些具体的问题,如怎样编写一个1+2等于几的程序,并了解变量的概念,变量的有效范围,数据类型等知识。其后,您将跟着本书,编写一个自己的MP3播放器,认识窗口、按钮、编辑框三个常用组件。以认识命令及事件子程序。第
3
当访问一个静态域时,只有真正声明这个域的类才会被初始化。如:当通过子类引用父类的静态变量,不会导致子类初始化
通过数组定义类引用,不会触发此类的初始化
引用常量不会触发此类的初始化(常量在链接阶段就存入调用类的常量池中了)
实例
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类?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号