黑马程序员技术交流社区

标题: static问题 [打印本页]

作者: 沈佳龙    时间: 2012-10-4 13:37
标题: static问题
本帖最后由 沈佳龙 于 2012-10-8 11:23 编辑


为什么static里面的输出只打印一次??
作者: 覃宏海    时间: 2012-10-4 13:45
那叫静态代码块,它的特点是随着类的加载而执行!
也就是说,当你的类加载的时候,它才执行。因此,你的程序在运行的时候,你的类仅仅加载了一次,所以只执行一次。
作者: 黑马乔荣柱    时间: 2012-10-4 14:03
static{}是静态代码块,随着类的加载而加载,而且优先于构造代码块执行,只执行一次
这是他的很明显的特点,不需要理解,你记住就行了
作者: 徐-星星    时间: 2012-10-4 18:39
楼上两位都说得很好,不需要再说了。。。。
作者: 王得新    时间: 2012-10-4 23:23

静态代码块是在类加载之后执行的,当然静态代码块在构造代码块之前执行;

静态代码块
a: 在类加载之后执行;
                 
b: 不能使用外部非静态成员(方法、变量);
               
c: 静态代码块和静态成员变量指定值的顺序是由代码从上到下的顺序决定的;
               
d: 如果有一段代码 我们希望在加载某个类的时候执行,而且只执行一次的时候,就可以使用静态代码块;





作者: 李铁    时间: 2012-10-4 23:40
它是一个静态代码块,随着类的加载而执行,只执行一次,在构造函数,构造代码块之前执行;并优先于主函数(main),用于给类进行初始化。
作者: 陈俊来    时间: 2012-10-5 14:02
上面说的好全了,我不说了
作者: cehkongfu    时间: 2012-10-5 15:47
彼岸花 发表于 2012-10-4 14:03
static{}是静态代码块,随着类的加载而加载,而且优先于构造代码块执行,只执行一次
这是他的很明显的特点 ...

静态代码块和 静态方法的加载是一样的吗?
作者: 陈琦    时间: 2012-10-5 16:19
都学得好扎实,哎,黑马不好进啊啊
作者: 曾浩    时间: 2012-10-6 17:16
这是静态代码块 他是随着类的加载而执行且只执行一次 即使你new了 两次 这个类也只加载了一次
如果你想让那个代码块打印两次 可以弄一个构造代码块(去掉static)  这样没new一个对象 构造代码块就执行一次




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2