黑马程序员技术交流社区
标题:
java构造代码块和构造函数内的代码块有什么区别,谁先执行
[打印本页]
作者:
fightingwang
时间:
2015-1-30 22:57
标题:
java构造代码块和构造函数内的代码块有什么区别,谁先执行
public class InitDemo{
InitDemo(){
j=1000;
System.out.println("j="+j);
}
int i;
static int j=50;
{
i=5;
j=10;
System.out.println("i="+i);
System.out.println("j="+j);
}
public static void main(String[ ] args){
InitDemo aa=new InitDemo();
}
}
有一些不明白地方 先输出i=5 j=10 后输j=1000
为什么先执行
{ i=5;
j=10;
System.out.println("i="+i);
System.out.println("j="+j); } //这部分是什么代码块?
然后在执行构造函数呢
InitDemo(){ //new完对象后,不应该先执行构造函数吗?
j=1000;
System.out.println("j="+j);
}
作者:
llkk11000
时间:
2015-1-31 12:10
{ }静态代码块 跟随类走 类加载进内存缓冲即执行
先静态代码块赋值j 然后静态变量赋值j 但是没调用没打印
然后new对象走构造代码快 统一赋值j 打印j
作者:
白衣布士
时间:
2015-1-31 14:25
静态代码块------然后构造代码块--------然后是构造函数
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2