類別型態 vs 基本型態
基本型態 | 類別型態 | |
---|---|---|
目的 | 效率 | |
類型 | long、int、double、float、boolean、byte | Long、Integer、Double、Float、Boolean、Byte |
語法 | 基本型態 變數名= XX; | 類別型態 變數名=new 類別型態(); |
自動裝箱(Auto Boxing)
您要使用包裹型態(Wrapper Types)才能將基本資料型態包裝為物件,前一個小節中您已經知道在 J2SE 5.0 之前,要如下才能將 int 包裝為一個 Integer 物件:
Integer integer = new Integer(10);
Long k=new Long(0);
在 J2SE 5.0 之後提供了自動裝箱的功能,您可以直接如下撰寫來包裹基本型態:
Integer integer = 10;
Long k=0L;
自動拆箱(unboxing)
public class AutoBoxDemo2 {
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 100;
if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");
}
}
Integer pool 的範圍為1byte :-127~128
物件型態的處理時間比基本型態還慢!!!
class wrapperclass{
public static void main(String[] args){
long beginTime =System.currentTimeMillis();
Long k=0L;
for(int i = 0; i < 10000; i++) {
k=k+i;
}
long endTime =System.currentTimeMillis();
System.out.println("執行時間:" + (endTime - beginTime));
beginTime =System.currentTimeMillis();
long m=0;
for(int i = 0; i < 10000; i++) {
m=m+i;
}
endTime =System.currentTimeMillis();
System.out.println("執行時間:" + (endTime - beginTime));
}
}
執行時間:16
執行時間:0
參考文件:https://caterpillar.gitbooks.io/javase6tutorial/content/c4_2.html
留言
張貼留言