黑马程序员技术交流社区
标题:
看看你的基础怎么样?
[打印本页]
作者:
黄方
时间:
2012-3-8 23:15
标题:
看看你的基础怎么样?
本帖最后由 舞动的心弦 于 2012-3-8 23:16 编辑
public class Demo_2
{
static int i=1;
static{
i++ ;
}
public Demo_2(){
i++;
}
public static void main(String[]args){
Demo_2 d1=new Demo_2();
System.out.println(d1.i);
Demo_2 d2=new Demo_2();
System.out.println(d2.i);
}
}
复制代码
作者:
王杰
时间:
2012-3-8 23:26
本帖最后由 苳眠 于 2012-3-8 23:28 编辑
因为静态在第一次载入类文件的时候加载到内存,以后创建对象就不用加载静态了
运行结果:
3
4
作者:
泮和顺
时间:
2012-3-9 06:55
同意楼上的。
作者:
肖发腾
时间:
2012-3-9 07:40
结果是3,4
作者:
袁野
时间:
2012-3-9 15:21
静态代码块 只加载一次 呵呵
作者:
李成航
时间:
2012-3-9 15:53
估计编译会错,因为i为static,只需通过Demo_2.i 访问,不应通过对象访问
作者:
黄或俊
时间:
2012-3-9 16:54
应该是3、4
作者:
张亮
时间:
2012-3-9 17:41
我的理解,说错了,请谅解。
加载类,静态代码执行一次,i由1变2。
Demo_2 d1=new Demo_2(); 此处调用Demo_2(),i由2变3。输出i的值是3。
Demo_2 d2=new Demo_2();此处又调用Demo_2(),i由3变4。输出的值是4。
作者:
黑马—王宁
时间:
2012-3-9 17:49
我也觉得是3 4
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2