hgc-ghc
          Good Good Study!!! Day Day Up!!!
          posts - 40,comments - 3,trackbacks - 0

          基本數據類型:byte,int,       short, long, boolean,char,       float,double等

          包裝類型     : Byte,Integer,Short,Long,Boolean,Character,Float,Double等

          基本類型(primitive type)
          不用new來創建變量,而是創建一個并非是“引用”的“自動”變量。這個變量擁有它的“值”,并置于堆

          棧中,因此更加高效。要確定每種基本類型所占存儲空間的大小。
          基本類型            大小           最小值             最大值         包裝器類型
          boolean                -             -                   -         Boolean
          char              6bit              Unicode 0      Unic ode 2(16)-1   Character
          byte                       8bit                  -128                +127               Byte
          short                      16bit                   -2(15)             2(15)-1           Short
          int                          32bit                  -2(31)              2(31)-1           Integer
          long                       64bit                 -2(63)              2(63)-1           Long
          float                       32bit                 IEEE754           IEEE754          Float
          double                   64bit               IEEE754            IEEE754          Double
          void                        -                       -                        -                 Void

           

          Java整型

          int 4字節(32位) -2147483648 ~ 2147483647   (正好超過20億)
          short 2字節(16位) -32768 ~ 32767
          long 8字節(64位) -9223372036854775808 ~ 9223372036854774807
          byte 1字節(8位) -128 ~ 127



                 浮點類型

          float 4字節(32位) 大約±3.40282347E+38F (有效位數為6-7位)
          double 8字節(64位) 大約±1.79769313486231570E+308 (有效位數為15位)

          一些需要注意:

           

          1if(x == Double.NaN)  // is never true


          1if(Double.isNaN(x))  // check whether is "not a number"


                 浮點數值不適合用于禁止出現舍入誤差的金融計算中。例如System.out.println( 2.0 - 1.1);將打印0.899999999999999,而不是0.9。因為浮點數值采用二進制系統表示,而二進制無法精確表示分數1/10,就像十進制無法精確表示1/3一樣。如果需要在數值計算中不含有舍入誤差,就應該使用BigDecimal類。


           

          一、 包裝類(Wrapper Class)共同的方法

          JAVA的包裝類
             
           Java語言是一個面向對象的語言,但是Java中的基本數據類型卻是不面向對象的,這在實際使用時存在很多的不便,為了解決這個不足,在設計類時為每個基本數據類型設計了一個對應的類進行代表,這樣八個和基本數據類型對應的類統稱為包裝類(Wrapper Class),有些地方也翻譯為外覆類或數據類型類。
              包裝類均位于java.lang包,包裝類和基本數據類型的對應關系如下表所示  

          包裝類對應表 基本數據類型 包裝類 
                          byte         Byte 
                          boolean   Boolean 
                          short        Short
                          char         Character 
                          int            Integer
                          long         Long 
                          float         Float
                          double     Double         
          在這八個類名中,除了Integer和Character類以后,其它六個類的類名和基本數據類型一直,只是類名的第一個字母大寫即可。


          值得說明的是,java是可以直接處理基本類型的,但是在有些情況下我們需要將其作為對象來處理,這時就需要將其轉化為包裝類了.所有的包裝類(Wrapper Class)都有共同的方法,他們是:

          (1)帶有基本值參數并創建包裝類對象的構造函數.如可以利用Integer包裝類創建對象,Integer obj=new Integer(145);

          (2)帶有字符串參數并創建包裝類對象的構造函數.如new Integer("-45.36");

          (3)可生成對象基本值的typeValue方法,如obj.intValue();

          (4)將字符串轉換為基本值的 parseType方法,如Integer.parseInt(args[0]);

          (5)生成哈稀表代碼的hashCode方法,如obj.hasCode();

          (6)對同一個類的兩個對象進行比較的equals()方法,如obj1.eauqls(obj2);

          (7)生成字符串表示法的toString()方法,如obj.toString().

           

          轉換關系:

          基本類型------>包裝器類
          Integer obj=new Integer(145);

          包裝器類------>基本類型
          int num=obj.intValue();

          字符串------>包裝器類
          Integer obj=new Integer("-45.36");

          包裝器類------>字符串包裝器類

          String str=obj.toString();

          字符串------>基本類型
          int num=Integer.parseInt("-45.36");

          基本類型------>字符串包裝器類

          String str=String.valueOf(5);

           


                  在一定的場合,運用java包裝類來解決問題,能大大提高編程效率.

           

          二、JDK1.5的新特性:自動裝包/拆包(Autoboxing/unboxing)

            自動裝包/拆包大大方便了基本類型數據和它們包裝類地使用。

            自動裝包:基本類型自動轉為包裝類.(int >> Integer)

            自動拆包:包裝類自動轉為基本類型.(Integer >> int)

            在JDK1.5之前,我們總是對集合不能存放基本類型而耿耿于懷,現在自動轉換機制
          解決了我們的問題。

          int a = 3;
          Collection c = new ArrayList();
          c.add(a);//自動轉換成Integer.

          Integer b = new Integer(2);
          c.add(b + 2);

            這里Integer先自動轉換為int進行加法運算,然后int再次轉換為Integer.


          posted on 2013-05-02 15:49 宏才 閱讀(2613) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 喜德县| 包头市| 昭平县| 西宁市| 绥化市| 盐城市| 无极县| 西华县| 开江县| 赤城县| 成武县| 西畴县| 潞西市| 双柏县| 宾阳县| 道孚县| 麻江县| 光山县| 沾益县| 清新县| 高要市| 漳州市| 肃宁县| 阿合奇县| 高平市| 酉阳| 贞丰县| 龙口市| 河曲县| 绥德县| 仪征市| 资阳市| 怀仁县| 永定县| 安西县| 同江市| 阳春市| 渝中区| 台中市| 怀来县| 大洼县|