class AA
{
public static void main(String args)
{System.out.println("123");}
/*static
{System.out.println("456");}*/
public static void main(String[] args)
{System.out.println("hello");
}
静态方法和静态代码块有什么不同,上面的程序为什么不输出123(因为main是一个程序的入口函数,在它里面没有调用静态的main方法,所以不输出123,我知道这个,那为什么静态代码块为什么就输出456了?)
{
public static void main(String args)
{System.out.println("123");}
/*static
{System.out.println("456");}*/
public static void main(String[] args)
{System.out.println("hello");
}
静态方法和静态代码块有什么不同,上面的程序为什么不输出123(因为main是一个程序的入口函数,在它里面没有调用静态的main方法,所以不输出123,我知道这个,那为什么静态代码块为什么就输出456了?)
静态代码块不是构造类对象的时候执行,而是被load了就会执行
就是借助这个实现的。
对于程序执行来说,内存分为数据区和代码区,数据区说白了就是变量保存的区域,代码区就是函数代码保存的区域,类被加载时或者实例化时就要初始化成员,所以数据区的代码被执行,代码区是调用函数时才会访问到的,所以static方法在不调用的时候是不会被执行的,但是static代码块因为被划分在数据区,所以会被执行的。