日期:2014-05-20  浏览次数:20842 次

a=a=b 求解释
A: List list = list = jdbcTemplate.queryForList(sql);

B: List list = jdbcTemplate.queryForList(sql);

这两句有什么区别,A这样写有什么好处

------解决方案--------------------
没区别……
------解决方案--------------------
呃,不知道

学习,祝楼主好运
------解决方案--------------------
A不会报错吗?
------解决方案--------------------
我靠,测试了下A尽然不报错。
------解决方案--------------------
没分别,也没什么特别的好处
 = 是从右到左运算的,第一种情况相当于给list赋了2次值,没什么太大意义
一般情况,多个变量需要同时赋值这样做比较简洁,比如
int i;
int j;
i = j = 10;
System.out.printf("i=%d, j=%d\n", i, j);
//i和j两个变量同时赋值,这样才比较意义,同一个变量,没必要

------解决方案--------------------
楼主的钻研精神值得我们学习,
不过这两种写法确实没有区别。
------解决方案--------------------
但是Y指向了X,Y再次指向Y的话,会不会将结果集赋值过来,将X结果集清空的时候后,获取Y会不会还是有值
[color=#FF0000][/color]

Y是不会有值的,Y指向Y(Y指向X),归根结底Y还是指向X。
------解决方案--------------------
int a = a = 10 从右运算先给a赋值10 然后将a值赋给a
和 int a = 10没区别
------解决方案--------------------
没有什么区别
------解决方案--------------------
探讨
A: List list = list = jdbcTemplate.queryForList(sql);

B: List list = jdbcTemplate.queryForList(sql);

这两句有什么区别,A这样写有什么好处

------解决方案--------------------
探讨
没分别,也没什么特别的好处
= 是从右到左运算的,第一种情况相当于给list赋了2次值,没什么太大意义
一般情况,多个变量需要同时赋值这样做比较简洁,比如
int i;
int j;
i = j = 10;
System.out.printf("i=%d, j=%d\n", i, j);
//i和j两个变量同时赋值,这样才比较意义,同一个变量,没必要

------解决方案--------------------
貌似没有什么区别
------解决方案--------------------
a=a=b;由于=是右结合的所以相当于a=(a=b);
而(a=b)作为表达式的值,就是a的值
所以实际做的操作是
a=b;
a=a;//这步毫无意义
------解决方案--------------------
还有这写法,学习了。。。
------解决方案--------------------
Java中a=a=b是要报错的啊!
------解决方案--------------------
要是不是这样的第二个list要是换成别的话 还有点意思
------解决方案--------------------
囧,为什么我也觉得A会报错
------解决方案--------------------
这个真没有什么意义...
------解决方案--------------------
貌似从右向左执行,在VC中不会报错,不过这样写帧没必要啊!
------解决方案--------------------
我认为这样写是极其不规范的。
------解决方案--------------------
这种写法编译器应该会直接处理掉
------解决方案--------------------
学习了
楼主钻石精神不错
------解决方案--------------------
探讨
现在这个语句是用来进行数据库的查询的

我主要认为 数据库查询出来的数据在X这一块,而Y指向了这个X,现在把x的结果集清空过后,那么获取的Y也就是为空了

但是Y指向了X,Y再次指向Y的话,会不会将结果集赋值过来,将X结果集清空的时候后,获取Y会不会还是有值


我主要是这么认为的,那些对这块理解的比较深的人帮帮忙,解释下吧!