?求助,高手请进,很让我郁闷的两个程序 本帖最后由 usagoole 于 2012-02-24 21:54:18 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先有一點你要明确的就是,java里面的静态变量初始化是有顺序的:自上而下的执行。所以你顺序不同将会出现不同的结果,这个没什么好大惊小怪的。。淡定; 具体分析:程序一:你对象实例化在前,当调用构造方时发现var1++,就去找到这个var1属性(全局int属性默认值为0),现在Test对象存在于内存当中且var1=1,同样var2=1,再往下走发现var1就只是声明而没有再次赋值(因为var1经有值了,内存里分配空间了。没有初始化,不可以被引用),var1=1不变,而遇到var2=0时,var2重新赋值,var2=0,,,这就是改程序输出为:1 0的原因 程序二:首先是var1声明(默认值为零),var2=0;对象实例化调用构造函数后var1=1,var2=1结果程序输出:1 1 就这么简单,,,,,了解了一些基本的底层原理,一些想不通的问题可能其实就是规定的,,推荐《Thinking in java 4th》 似乎有点明白了,我去看看thinking in java 。谢谢 http 连接问题,帮个忙~~~ 类型转换问题 程序运行中得不到表格中的数据? JAVA的基础问题 throws IOException的问题 java中如何跟数据库连接啊 图形学裁剪的问题! 请大家帮忙!两个小问题 有请[路人甲]:关于你给的那个smpp,介绍一下你的经验? 关于汇编显示乱码的问题 将excel导入JTable中 3个函数,如何把第一个函数的数据 经过第二个函数的判断把数据赋值到第三个函数上
具体分析:程序一:你对象实例化在前,当调用构造方时发现var1++,就去找到这个var1属性(全局int属性默认值为0),现在Test对象存在于内存当中且var1=1,同样var2=1,再往下走发现var1就只是声明而没有再次赋值(因为var1经有值了,内存里分配空间了。没有初始化,不可以被引用),var1=1不变,而遇到var2=0时,var2重新赋值,var2=0,,,这就是改程序输出为:1 0的原因
程序二:首先是var1声明(默认值为零),var2=0;对象实例化调用构造函数后var1=1,var2=1结果程序输出:1 1 就这么简单,,,,,了解了一些基本的底层原理,一些想不通的问题可能其实就是规定的,,推荐《Thinking in java 4th》