Java 的逗号分隔符 - 它是否强制计算顺序?



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

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是否可以自由地重新排序这些操作?

在Java中,由逗号操作符,分隔的表达式的求值严格从左到右。在移动到下一个表达式之前,逗号中的每个表达式都被完全求值。

注意逗号操作符的优先级是所有操作符中最低的。

相关内容

  • 没有找到相关文章