Java Thread.sleep long还是int?

时间:2016-02-26 01:10:35

标签: java sleep numeric literals

Thread.sleeplong为参数,以毫秒为单位。但是,除非使用1000L之类的字母符号另有说明,否则数字文字将被视为整数。那么为什么这个有效的代码?

Thread.sleep(1000);

2 个答案:

答案 0 :(得分:5)

因为int可以升级为long

longint更大(更多位),因此int可以转换为long而不会丢失任何数据。走另一条路可能会有问题,因为数据可能会丢失 - 因此这将是一个错误。

答案 1 :(得分:3)

这是一个有效的扩展转换,另请参阅JLS-5.1.2. Widening Primitive Conversion,其中部分

  

对基本类型的19个特定转换称为扩展基元转换:

     
      
  • intlongfloatdouble
  •