Java “中的交换条件”;如果;陈述

Java “中的交换条件”;如果;陈述,java,if-statement,null,Java,If Statement,Null,考虑一下这个代码片段 import java.util.Date; class Test { public static void main(String[] args) { Date date = null; long startTime = System.currentTimeMillis(); if(date == null) { System.out.println("null == date"); }else {

考虑一下这个代码片段

import java.util.Date;

  class Test {
     public static void main(String[] args) {

    Date date = null;

    long startTime = System.currentTimeMillis();

    if(date == null) {
        System.out.println("null == date");
    }else {
        System.out.println("date found "+date);
    }

      long stopTime = System.currentTimeMillis();
      long elapsedTime = stopTime - startTime;
      System.out.println(elapsedTime);
    }
}
if条件中,我使用了date==null我想知道,如果我选择写null==date


PS-对于这两种情况,我的代码都将输出为0,但如果代码复杂且操作繁重,该怎么办

date==null
null==date
几乎完全相同

在您的具体情况下,它们之间既没有速度上的差异,也没有观察到的行为上的差异

您得到了
0
,因为现代计算机速度非常快,执行该计算只需不到毫秒

PS:如果你真的想测量它需要多长时间,你必须执行数十万次,然后除以测量的时间来计算执行次数

PPS:微基准测试在Java中并不是那么容易,因为您已经考虑了很多事情,比如JVM内部行为、编译器优化、GC、JIT以及其他

编辑
我错了,它们是完全等效的,因为这段代码将被编译为使用
IFNONNULL
指令。

我认为这不会有任何区别,这不会有任何区别。@aKilleR这个问题是专门问性能的。它在性能方面也不会有任何区别。直到引入多种条件。这样就可以短路。但我猜这不属于这个问题