package com.gao;
/*深入理解并掌握 类,静态代码块,构造代码块,构造函数执行顺序
*
* 静态代码块
* static
* {
* 静态代码块中的执行语句
* }
* 随着类的加载而加载,优先于主函数执行,用于给类初始化的
* */
class StaticDemo
{
//自定义无惨构造函数
StaticDemo()
{
System.out.println("a");
}
//给类初始化
static
{
System.out.println("b");
}
//给所有对象初始化
{
System.out.println("e");
}
StaticDemo(int x)//给指定对象初始化
{
System.out.println("f");
}
public static void show()
{
System.out.println("show run");
}
}
/*
* StaticCodeDemo类首先加入内存
* */
public class StaticCodeDemo
{
static
{
System.out.println("c");
}
public static void main(String[] args)
{
//使用到类中的内容时类才会被加载
/*new StaticDemo();
new StaticDemo();
System.out.println("over");*/
//打印结果是:c d b over
//StaticDemo s = null;//s对象没有指向,所以StaticDemo类不会被加载,所以static代码块没有执行
//StaticDemo.show();
new StaticDemo(6);//打印结果:c d b e f
}
static
{
System.out.println("d");
}
} |
|