Java中long和Long有什麼區別 (轉載)
“Long is a class. long is a primitive. That means Long can be null, where long can't. Long can go anywhere that takes an Object, long can't (since it isn't a class it doesn't derive from Object).
Java will usually translate a Long into a long automatically (and vice versa), but won't for nulls (since a long can't be a long), and you need to use the Long version when you need to pass a class (such as in a generic declaration).
”
Java的資料型別分兩種:
1.基本型別:long,int,byte,float,double,char
2. 物件型別(類): Long,Integer,Byte,Float,Double,Char,String,其它一切java提供的,或者你自己建立的類。
其中Long又叫 long的包裝類。而Byte和Float也類似,一般包裝類的名字首寫是數值名的大寫開頭。
什麼叫包裝類?在java中有時候的運算必須是兩個類物件之間進行的,不充許物件與數字之間進行運算。所以需要有一個物件,這個物件把數字進行了一下包裝,這樣這個物件就可以和另一個物件進行運算了。
比如我們也可以定義一個類:
1 class2 int i=0;
3 public Long (int i){
4 this.i=i;
5 }
6 }
這樣這個Long就是一個包裝類,他包裝了一個整數值,然後可以在裡面寫一些運算子過載的方法使它支援某些運算。這個時候可以賦值:
Long it=new Long(10);
現在變數it就是一個物件,不是一個數字。
Long 是長整型,在怎麼長本身也是整型,12.10的整形部分是12,當然結果是12,
byte: 八位整數 -128——127,可用來節省記憶體的使用。
short: 16位整數 -32768——32,767,也比較省記憶體。
int: 32位整數 -2,147,483,648——2,147,483,647,一般來說整數都夠用了
long: 64位整數 -9,223,372,036,854,775,808—— 9,223,372,036,854,775,807,一般不需要用
float: 32位浮點,如果浮點需要節省記憶體用這個。
Double: 64位浮點,一般非整數浮點可用這個。
但是要記住float和double都不是精確的,如果要儲存錢一類的必須精確的,用java.math.BigDecimal