Java的逗号分隔符 - 是否强制执行评估顺序?

时间:2015-08-06 10:17:05

标签: java comma

我正在编写一个循环,用于从字节数组中创建多个片段,其中第一个片段的大小必须与后面的片段不同。

for (int frag_start = 0, frag_end = Math.min(len, MAX_FIRST_FRAG_SIZE);
     frag_start < len;
     frag_start = frag_end, frag_end = Math.min(len, frag_start + MAX_LATER_FRAG_SIZE)) {
     // code goes here
}

frag_start = frag_end, frag_end = ...中的逗号是否强制执行逗号之前的赋值总是在逗号之后的赋值之前发生,或者JVM是否可以自由重新排序这些操作?

1 个答案:

答案 0 :(得分:3)

在Java中,由逗号运算符,分隔的表达式的评估严格地从左到右。在移动到下一个表达式之前,将完全评估逗号中的每个表达式。

请注意,逗号运算符的优先级最低。