Java编程long数据类型的使用问题

时间:2022-01-09 17:55:47

Java编程中经常遇到一些整数类型的使用问题,下面我们来看看长整形数据使用问题。
今天在写一个java线程的时候,想让线程休眠720小时候继续执行,代码如下:

?
1
2
long runSperiod = 720 * 60 * 60 * 1000;
Thread.sleep(runSperiod)

 

启动线程测试的时候,发现线程并没有按照预想的720小时候后执行,而是不停在执行,最后跟踪代码发现 runSperiod 的值时负数。仔细研究后发现,java在处理几个数相乘时,如果几个数都是 int 类型,那么计算出来的值就是 int 型,上面的计算机结果就是 int 型,但是超出了java里对于 int 类型的范围,所以结果是负数。
解决方法很简单,只要在相乘的数字后面加上L即可(只要一个数字后面加即可),标识该数字类型是长整形,计算出来的结果就是 long 型。

?
1
2
long runSperiod = 720L * 60 * 60 * 1000;
Thread.sleep(runSperiod)

在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个数字就是int型的,如果我们希望它是byte型的,可以在数据后加上大写的 B:35B,表示它是byte型的,同样的35S表示short型,35L表示long型的,表示int我们可以什么都不用加,但是如果要表示long型 的,就一定要在数据后面加“L”。

总结

以上所述是本文Java编程数据类型long的使用问题的全部内容,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。感谢大家对本站的支持。

原文链接:https://www.2cto.com/kf/201706/652730.html