黑马程序员技术交流社区
标题:
关于静态初始化和代码加载
[打印本页]
作者:
章闽
时间:
2012-10-16 18:24
标题:
关于静态初始化和代码加载
public class five_three {
public static void main(String[] args) {
System.out.println("maincode i="+StativInitDemo.i);
System.out.println("maincode i="+StativInitDemo.i);
}
}
class StativInitDemo{
static int i;
static{
i=3;
System.out.println("Static code i= "+i++);
}
}
为什么结果是
Static code i= 3
maincode i=4
maincode i=4
而不是
Static code i= 3
maincode i=4
Static code i= 3
maincode i=4
静态语句块不是在类加载是运行的吗?
作者:
黄小贝
时间:
2012-10-16 18:27
静态块只会在加载的时候运行~~这里只加载了一次
作者:
马良
时间:
2012-10-17 23:41
静态代码块在类加载到内存的时候,就会运行,加载一次,他就运行一次。
你主函数里在调用的时候,StativInitDemo类只加载了一次
作者:
邹海洋
时间:
2012-10-18 00:01
StativInitDemo里的成员都是静态的,第一个3是在加载StativInitDem时打印的,打印完后i自增,后面两个4就是主函数的打印语句。废话这么多,知识点就是静态只加载一次。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2