在Java編程中經(jīng)常遇到一些整數(shù)類型的使用問題,下面我們來看看長整形數(shù)據(jù)使用問題。
今天在寫一個java線程的時候,想讓線程休眠720小時候繼續(xù)執(zhí)行,代碼如下:
1
2
|
Thread.sleep(runSperiod) |
啟動線程測試的時候,發(fā)現(xiàn)線程并沒有按照預想的720小時候后執(zhí)行,而是不停在執(zhí)行,最后跟蹤代碼發(fā)現(xiàn) runSperiod 的值時負數(shù)。仔細研究后發(fā)現(xiàn),java在處理幾個數(shù)相乘時,如果幾個數(shù)都是 int 類型,那么計算出來的值就是 int 型,上面的計算機結(jié)果就是 int 型,但是超出了java里對于 int 類型的范圍,所以結(jié)果是負數(shù)。
解決方法很簡單,只要在相乘的數(shù)字后面加上L即可(只要一個數(shù)字后面加即可),標識該數(shù)字類型是長整形,計算出來的結(jié)果就是 long 型。
1
2
|
long runSperiod = 720L * 60 * 60 * 1000 ; Thread.sleep(runSperiod) |
在通常情況下,如果JAVA中出現(xiàn)了一個整數(shù)數(shù)字比如35,那么這個數(shù)字就是int型的,如果我們希望它是byte型的,可以在數(shù)據(jù)后加上大寫的 B:35B,表示它是byte型的,同樣的35S表示short型,35L表示long型的,表示int我們可以什么都不用加,但是如果要表示long型 的,就一定要在數(shù)據(jù)后面加“L”。
總結(jié)
以上所述是本文Java編程數(shù)據(jù)類型long的使用問題的全部內(nèi)容,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。感謝大家對本站的支持。
原文鏈接:https://www.2cto.com/kf/201706/652730.html