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。