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
。