标题: 关于静态代码快!!!!!! [打印本页] 作者: 移动小坦克 时间: 2013-3-4 23:29 标题: 关于静态代码快!!!!!! class Out
{
static
{
System.out.println("out de jing tai dai ma kuai");
}
static class in //如果内部类不是静态的那么,无法在内部类中定义一个静态代码快
{
static
{
System.out.println("in de jing tai dai ma kuai");
}
}
}
-------------------------------------------------------------------------------
public class JingTaiDaiMaKuai {
public static void main(String[] args) {
new Out();
}
}
打印结果为:out de jing tai dai ma kuai
问题一:为什么如果内部类不是静态的,内部类当中就无法定义一个静态代码快?
问题二:静态应该是随着类的加载而存在于方法区中,那么当new Out()时,加载了Out类,所以会执行一次静态代码快System.out.println("out de jing tai dai ma kuai");
那么静态内部类为什么这个时候没有被加载,它竟然是静态的,就想当于外部类的一个静态成员啊,那当外部类被加载时,静态内部类不也应该被加载吗?
那静态内部类的静态代码块也应该被执行啊?
如果加载了内部类,那为什么内部类的静态代码块没有被执行?
问题三:内部类(没有静态)什么时候才会被加载进内存?