package com.company.java_high_concurrency.chapter09;
/**6种方式会导致类被初始化
* 1.new关键字会导致类的初始化
* 2.访问类的静态变量
* 3.访问类的静态方法
* 4.对某个类进行反射操作
* 5.初始化子类会导致父类被初始化
* 6.执行main函数所在的类会导致该类的初始化
*/
public class SixWaysOfInitialize {
public static void main(String[] args) throws ClassNotFoundException {
//1
new A1();
//2
System.out.println(A2.i);
//3
A3.a3();
//4
Class.forName("com.company.java_high_concurrency.chapter09.A4");
//5
new A5_child();
//6.运行A6的main
}
}
class A1{
static {
System.out.println("new关键字会导致类的初始化");
}
}
class A2{
public static int i = 1;
static {
System.out.println("访问类的静态变量");
}
}
class A3{
static {
System.out.println("访问类的静态方法");
}
public static void a3(){
}
}
class A4{
static {
System.out.println("对某个类进行反射操作");
}
}
class A5_parent{
static {
System.out.println("初始化子类会导致父类被初始化");
}
}
class A5_child extends A5_parent{
}
class A6 {
public static void main(String[] args) {
}
static {
System.out.println("执行main函数所在的类会导致该类的初始化");
}
}
6种方式导致类的初始化
最新推荐文章于 2021-02-18 22:19:12 发布