Java运算符优先级谁知道?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java运算符优先级谁知道?相关的知识,希望对你有一定的参考价值。

参考技术A 这个都一样,先乘除后加减,先算括号 参考技术B 下面是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算) (BY三人行慕课)
优先级 描述 运算符
1 括号 ()、[]
2 正负号 +、-
3 自增自减,非 ++、--、!
4 乘除,取余 *、/、%
5 加减 +、-
6 移位运算 <<、>>、>>>
7 大小关系 >、>=、<、<=
8 相等关系 ==、!=
9 按位与 &
10 按位异或 ^
11 按位或 |
12 逻辑与 &&
13 逻辑或 ||
14 条件运算 ?:
15 赋值运算 =、+=、-=、*=、/=、%=
16 位赋值运算 &=、|=、<<=、>>=、>>>=

执行SQL插入数据的时候数据顺序错乱谁知道为啥么?

我查出的数据存放到list里面然后接下来执行这个方法
public int AddChapter(IList<ZLChapterList> zlbookchapterlist)

int count = 0;
foreach (ZLChapterList zlc in zlbookchapterlist)

string sql = @" inster。。。。";//就是一个才插入语句
SqlParameter[] para = new SqlParameter[]
(。。。。。)//参数部分
new SqlParameter("@voluemeindex",zlc.Voluemeindex),
new SqlParameter("@imgflag",zlc.Imgflag),
new SqlParameter("@bookauthor",zlc.Bookauthor)
;
count = DBHelpercj.ExecuteCommand(sql, para);

return count;

循环遍历list里面的值,插入数据,执行下来的数据非常乱,(大约两万条数据)
但是我要是一步一步的调试,就不乱,谁能帮我解决这个问题么?谢谢大家了
list的书序是正确的,查出来的数据顺序是没问题的,但是在插入的时候出现问题。。。他插入进去的就会乱,怎么能解决这个问题呢?

可能是跟数据库主键字段有关,如果设置主键ID为自增的话,插入就不会行乱了。追问

这种情况是为什么?为什么会造成这个问题,谢谢你

追答

取数据时如果没有指定Order By,则先是按主键排序的,如果没有主键,则按其它排序(可能是第一列)

参考技术A 单步不乱,那么乱序出现在循环端的可能性先排除。因为你的执行命令是一行一条连续发出且间隔时间几乎没有,可能造成这数据库服务器在接收/处理这几万条数据时发生了乱序。
建议是,如果实在不能找到原因,就先把数据存到一个临时存储用的表,在每条记录发出时记录流水号(行号)用于标记先后顺序,然后用insert...select ...order by...来把排序后的数据插入正表。
参考技术B 三楼正解~~~~~~~~~ 参考技术C 插入之前先对list进行一下排序

以上是关于Java运算符优先级谁知道?的主要内容,如果未能解决你的问题,请参考以下文章

java new运算符与点运算符优先级比较

一些收藏:运算符的优先级

java运算符优先级问题

java中位运算符的优先级

在java运算符&&,,==,+中优先级最高的是

java运算优先级的问题