int length=960*540;
int a[960*540];
int a2[960*540];
void initArray(){
    for(int i=0;i<length;i++){
      a[i]=i;
      a2[i]=i;
    }}void cmp(int* a, int* a2) {
if (a == a2) { return; }
if (a == 0 || a2 == 0)
return; for (int i = 0; i < length; i++)
if (a[i] != a2[i])
return; }int main(){initArray();for (int i = 0; i < 100; i++)
// cmp(a, a2);方法一 for (int j = 0; j < length; j++)//方法二
if (a[j] != a2[j])
return 0;
}使用c语言测试两种方法消耗时间基本一致。且方法1略微快些,方法2可能是由于函数调用引起效率降低。但是使用java语言实现确实结果和c语言不一致,方法2快且比方法1快一倍。请问是由于虚拟机的优化吗?或是其他的一些问题?java虚拟机优化测试