Java的基本数据类型有8种:
数值型:
整型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
说明:
1、整型数据,位数和取值范围不同:byte(8位 -128~127) short(16位 -32768~32767) int(32位) long(64位)
2、浮点型数据,可以表示小数:float(单精度浮点型) 32位,double(双精度浮点型) 64位。小数默认为double,若要使用float,则在小数后加f表示(12.34f)。
3、字符型char占位32位,2个字节,例如:
char a = ‘人’;
char x=’a’;
或者 char x=97; //这是ascall码,表示a。若字符型
若输出单引号,双引号,空格等特殊字符,则需要进行转义:
char x=’\’’;
char x=’\n’;等
虽然每一种引用类型都和Object相容,但是8中基本数据类型却不能,所以java为这8中基本类型都提供了包装类:Byte,Short,Integer,Long,Float,Double,Character,Boolean。
1、基本类型à包装类:Integer i = new Integer(123);
包装类à基本类型:int num = i.intValue();
(注:每一种都有相应的转换方法,使用时可以查阅具体方法)
2、JDK1.5之后,java实现了自动装包/拆包,即基本类型和包装类可以自动转换“
int a = 3;
Collection c = new ArrayList();
c.add(a);//自动转换成Integer.
Integer b = new Integer(2);
c.add(b+2);
这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer。
即如果一个int类型的变量传递到一个需要Integer对象的地方,编译器会在幕后插入一个对Integer构造方法的调用,这是自动装箱;而一个Integer对象被放到需要int类型的地方,则编译器会在幕后插入一个队intValue方法的调用,这是自动拆箱。对于其他的7中基本类型也是如此。