類別型態 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

留言

這個網誌中的熱門文章

[HTML]標籤-下

論P, NP, NP-Complete, NP-Hard問題

[Python]基礎課程

[系統]解除電腦限制頻寬

[HTML]標籤-上

[AlaSQL] 多data查詢+累計

How to Check the MySQL Version

[SQL Sever] 日期時間

推薦使用的9款編程字體