Java 线程睡眠(9000l)和线程睡眠(9000)之间的区别是什么

Java 线程睡眠(9000l)和线程睡眠(9000)之间的区别是什么,java,Java,Thread.sleep(9000l)之间的区别是什么和线程睡眠(9000) 它对线程的睡眠时间有影响和区别吗?或者它是一个相同的时间。根本没有区别 只有一个重载线程.sleep:线程.sleep(long)。第二种形式指定了一个int参数,但它会自动扩展为long 由于9000是一个常量表达式,编译器将其重写为9000L: public void one() throws InterruptedException { Thread.sleep(9000); } public void t

Thread.sleep(9000l)之间的区别是什么
线程睡眠(9000)


它对线程的睡眠时间有影响和区别吗?或者它是一个相同的时间。

根本没有区别

只有一个重载
线程.sleep
线程.sleep(long)
。第二种形式指定了一个
int
参数,但它会自动扩展为
long

由于
9000
是一个常量表达式,编译器将其重写为
9000L

public void one() throws InterruptedException {
  Thread.sleep(9000);
}

public void two() throws InterruptedException {
  Thread.sleep(9000L);
}
反编译到

  public void one() throws java.lang.InterruptedException;
    Code:
       0: ldc2_w        #2                  // long 9000l
       3: invokestatic  #4                  // Method java/lang/Thread.sleep:(J)V
       6: return

  public void two() throws java.lang.InterruptedException;
    Code:
       0: ldc2_w        #2                  // long 9000l
       3: invokestatic  #4                  // Method java/lang/Thread.sleep:(J)V
       6: return

相同的字节码,所以没有区别。

根本没有区别

只有一个重载
线程.sleep
线程.sleep(long)
。第二种形式指定了一个
int
参数,但它会自动扩展为
long

由于
9000
是一个常量表达式,编译器将其重写为
9000L

public void one() throws InterruptedException {
  Thread.sleep(9000);
}

public void two() throws InterruptedException {
  Thread.sleep(9000L);
}
反编译到

  public void one() throws java.lang.InterruptedException;
    Code:
       0: ldc2_w        #2                  // long 9000l
       3: invokestatic  #4                  // Method java/lang/Thread.sleep:(J)V
       6: return

  public void two() throws java.lang.InterruptedException;
    Code:
       0: ldc2_w        #2                  // long 9000l
       3: invokestatic  #4                  // Method java/lang/Thread.sleep:(J)V
       6: return

相同的字节码,所以没有区别。

它是相同的。9000L只是java中的一个约定,用于定义您正在使用的数字是long类型。同样适用于浮球(0.1f),无差异。只有一个重载
线程.sleep
线程.sleep(long)
。第二种形式指定了一个
int
参数,但它会自动扩展为
long
。请注意,最好使用
L
后缀,而不是
L
,来指定一个长文字:
L
在某些字体中看起来很像
1
。这是相同的。9000L只是java中的一个约定,用于定义您正在使用的数字是long类型。同样适用于浮球(0.1f),无差异。只有一个重载
线程.sleep
线程.sleep(long)
。第二种形式指定了一个
int
参数,但它会自动扩展为
long
。请注意,最好使用
L
后缀,而不是
L
,来指定一个长文字:
L
在某些字体中看起来很像
1