Java基础之011-Java基本数据类型及其包装类
老帅
1、Java有8种基本数据类型
类型 | 包装类 | 位数 | 最小值 | 最大值 |
byte | java.lang.Byte | 8 | Byte.MIN_VALUE=-128 | Byte.MAX_VALUE=127 |
short | java.lang.Short | 16 | Short.MIN_VALUE=-32768 | Short.MAX_VALUE=32767 |
int | java.lang.Integer | 32 | Integer.MIN_VALUE=-2147483648 | Integer.MAX_VALUE=2147483647 |
long | java.lang.Long | 64 | Long.MIN_VALUE=-9223372036854775808 | Long.MAX_VALUE=9223372036854775807 |
float | java.lang.Float | 32 | Float.MIN_VALUE=1.4E-45 | Float.MAX_VALUE=3.4028235E38 |
double | java.lang.Double | 64 | Double.MIN_VALUE=4.9E-324 | Double.MAX_VALUE=1.7976931348623157E308 |
char | java.lang.Character | 16 | Character.MIN_VALUE=0 | Character.MAX_VALUE=65535 |
boolean | java.lang.Boolean | 1 | 0 | 1 |
2、几点要注意的
1) char:char属于字符类型,在存储的时候用2个字节来存储,因为Java本身的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围即是Unicode的字符范围,在变量初始化的时候,char类型的默认值为'u0000'
2) 当整数类型的数据使用字面量赋值的时候,默认值为int类型,就是直接使用0或者其他数字的时候,值的类型为int类型,所以当使用long a = 0这种赋值方式的时候,JVM内部存在数据转换。
通过字面量给long类型变量赋值:long a = 0L
3) 当实数类型的数据使用字面量赋值的时候,默认值为double类型,就是直接使用0.1或者其他实数的时候,值的类型为double类型,JVM会使用double类型的数据类型。
通过字面量给float类型变量赋值:float b = 0.1
3、包装类
为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。用于描述该对象的类就称为基本数据类型对象包装类。
3.1该包装对象主要用基本类型和字符串之间的转换。
A. 基本类型--->字符串
a) 基本类型数值+""
b) 用String类中的静态方法valueOf(基本类型数值);
c) 用Integer的静态方法toString(基本类型数值);
B. 字符串--->基本类型
a) 使用包装类中的静态方法
Integer i= Integer(“123”);
b) 使用paraseXXX方法
intparseInt("intstring");
longparseLong("longstring");
booleanparseBoolean("booleanstring");
只有Character没有parse方法
c) 如果字符串被Integer进行对象的封装。
Integer i= Integer(“123”);
可使用另一个非静态的方法,i.intValue();
将一个Integer对象转成基本数据类型值。
3.2 整数具备不同的进制体现。
A. 十进制-->其他进制。
toBinaryString
toOctalString
toHexString
B. 其他进制-->十进制。
parseInt("string",radix)
3.3 自动装箱与拆箱
装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质
拆箱:和装箱相反,将引用类型的对象简化成值类型的数据
JDK1.5以后,简化了定义方式。
Integerx = new Integer(4);可以直接写成
Integerx = 4;//自动装箱。编译器调用的是static Integer valueOf(int i)。
x = x + 5;//自动拆箱。编译器调用的是int intValue(int i)。
需要注意:
在使用时,Integer x = null;上面的代码就会出现NullPointerException。