1. 程式人生 > >long和int的愛恨情仇

long和int的愛恨情仇

話不多說直接上程式碼:

long a=1000L*60L*60L*24L*365L*100L;
long a1=1000*60*60*24*365*100;
System.out.println(a);
System.out.println(a1);

a:3153600000000
a1:1094004736

看似一樣的程式碼結局完全不一樣,這其中的區別就是‘L’。

a的運算數值以L結尾表示為long型別的數值;

而a1沒有那麼虛擬機器會認為這是int之間的計算,那麼a1即使用long聲明瞭也給你用int型別來儲存,當計算結果超出int.max則會出現a1的錯誤。

日常容易忽略的小問題。