------- android培训、java培训、期待与您交流! ----------
/*
静态代码块。
格式:
static
{
静态代码块中的执行语句。
}
特点:随着类的加载而执行,执行一次,并优先于主函数。
用于给类进行初始化的
*/
class StaticCode
{
static
{
System.out.println("a");
}//没名字,没人调用它,它怎么执行呢?
public static void show()
{
System.out.println("show run");
}
}
/*
class StaticCodeDemo
{
static
{
System.out.println("b");
}
public static void main(String[] args)
{
new StaticCode();
new StaticCOde();
System.out.println("Hello World!");
}
static
{
System.out.println("c");
}
}*/
//*****\day06>javac 有两个class
//*****\day06>java StaticCodeDemo
//b c a over
class StaticCode
{
//StaticCode(){};
static
{
System.out.println("a");
}//没名字,没人调用它,它怎么执行呢?
public static void show()
{
System.out.println("show run");
}
}
class StaticCodeDemo
{
static
{
//System.out.println("b");
}
public static void main(String[] args)
{
//new StaticCode();
//new StaticCOde();
//System.out.println("Hello World!");
StaticCode.show();
StaticCode s = null;///静态代码块不执行,即没加载
s = new StaticCode();//用到默认的构造函数
//此时加载了,或StaticCode.show(),但凡用到它的内容时,才加载,只设个引用就不加载了,自己验证
}
static
{
//System.out.println("c");
}
}
/*
考试怎么考?
代码块的执行顺序
class StaticCode
{
StaticCode()
{
System.out.println("b");
}
static//静态代码块,给类初始化的
{
System.out.println("a");
//如果开始:int num = 9; 在这能否System.out.println("a"+num);?不能
}
{//构造代码块,给对象初始化的
System.out.println("c");
}
StaticCode(int x)//构造函数,给对应对象初始化的
{
System.out.println("d");//此处?System.out.println("a"+num),可以
}
public static void show()
{
System.out.println("show run");
}
}
class StaticCodeDemo
{
static
{
//System.out.println("b");
}
public static void main(String[] args)
{
new StaticCode(4);
//new StaticCode();
//new StaticCOde();
//System.out.println("Hello World!");
StaticCode.show();
//StaticCode s = null;///静态代码块不执行,即没加载
//s = new StaticCode();//用到默认的构造函数
//此时加载了,或StaticCode.show(),但凡用到它的内容时,才加载,只设个引用就不加载了,自己验证
}
static
{
//System.out.println("c");
}
}
//结果:a d c
*/