黑马程序员技术交流社区
标题:
小问题
[打印本页]
作者:
NO?
时间:
2014-4-11 12:32
标题:
小问题
静态函数 和 构造代码块哪个先执行。
作者:
年轻的老头
时间:
2014-4-11 12:39
你想问的问题是不是:静态代码块 和 构造函数哪个先执行
作者:
luoyilan222
时间:
2014-4-11 12:48
构造代码块先执行 , 静态函数调用时候才会执行,
作者:
H._张_♂
时间:
2014-4-11 13:38
import org.omg.CORBA.INTERNAL;
public class Test2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
T t = new T();
}
}
class T{
{
System.out.println("构造代码块执行");
}
static{
System.out.println("静态代码块执行");
}
T(){
System.out.println("构造函数内代码块1");
}
T(int i){
System.out.println("构造函数内代码块2");
}
}
复制代码
输出结果顺序为
//静态代码块执行
//构造代码块执行
//构造函数内代码块1
构造代码块每次在调用构造函数都会执行,构造函数内代码块,只有在执行对应的构造函数才调用,静态代码块随类加载而加载。只加载一次。
作者:
袁啟雄x
时间:
2014-4-11 15:05
本帖最后由 袁啟雄x 于 2014-4-11 15:09 编辑
静态代码只会在第一次加载类的时候执行一次.
非静态代码块每次都在新建对象是执行一次.顺序比构造函数优先
如下代码
public class Test {
public Test(){
System.out.println("构造函数");
}
{
System.out.println("非静态代码块");
}
static{
System.out.println("静态代码块");
}
public static void main(String[] args) {
new Test();
new Test();
}
}
复制代码
作者:
K.L.Zous
时间:
2014-4-11 16:14
静态代码块在加载的时候执行 构造函数仅当需要的时候才调用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2