该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-02
最后修改:2010-06-02
引用 public class Increment { public static void main(String[] args) { int j = 0; for (int i = 0; i < 100; i++) j = j++; System.out.println(j); } } 看一下字节码就全明白了 10: iload_1 // 把0压入栈 11: iinc 1, 1 // 把索引为1的局部变量加1 14: istore_1 // 再把栈里的变量赋值给索引为1的局部变量,也就是赋值0 |
|
返回顶楼 | |
发表时间:2010-06-02
感觉还行,能做出来。。。
|
|
返回顶楼 | |
发表时间:2010-06-02
能把每道题都写上答案和答案解析吗?
|
|
返回顶楼 | |
发表时间:2010-06-02
挺不错的题比 int a=1,b=2;
System.out.print(a+++b); |
|
返回顶楼 | |
发表时间:2010-06-02
hui94781674 写道
wnick 写道
IrenBJ 写道
5。 public class Increment { public static void main(String[] args) { int j = 0; for (int i = 0; i < 100; i++) j = j++; System.out.println(j); } }
求打印结果?
j++ 代表先赋值,后j+1; 这道题问题出现在 j=j++;这个表达式上 举个例子如果在增加一个变量a a=j++ 这时a的值是0 j的值是1 没错吧。 这个很容易理解。 但是j=j++就变了, 因为是同一个变量赋值,所以 j==0; 这时候的j++已经不起作用了。
|
|
返回顶楼 | |
发表时间:2010-06-02
xxboy 写道 引用 public class Increment { public static void main(String[] args) { int j = 0; for (int i = 0; i < 100; i++) j = j++; System.out.println(j); } } 看一下字节码就全明白了 10: iload_1 // 把0压入栈 11: iinc 1, 1 // 把索引为1的局部变量加1 14: istore_1 // 再把栈里的变量赋值给索引为1的局部变量,也就是赋值0 楼上正解也! |
|
返回顶楼 | |
发表时间:2010-06-02
bigkai_13 写道
hui94781674 写道
wnick 写道
IrenBJ 写道
5。 public class Increment { public static void main(String[] args) { int j = 0; for (int i = 0; i < 100; i++) j = j++; System.out.println(j); } }
求打印结果?
跳出循环的条件是i<100? |
|
返回顶楼 | |
发表时间:2010-06-02
第一题求解。。。。
|
|
返回顶楼 | |
发表时间:2010-06-02
IrenBJ 写道 Calendar类中的月份是从0开始计算的,也就是说12代表的是下一年的1月份,这才是正确的理解。 又看了一遍DOC, 果然如哥们你所说, 感谢指正啊。 |
|
返回顶楼 | |
发表时间:2010-06-02
惭愧,看书自省去
|
|
返回顶楼 | |