基本數據類型:byte,int, short, long, boolean,char, 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位) |
一些需要注意:


浮點數值不適合用于禁止出現舍入誤差的金融計算中。例如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.