包装类&装箱拆箱
八种包装类对应八种基本数据类型
基本数据类型 | byte | short | int | long | float | double | char | boolean |
---|---|---|---|---|---|---|---|---|
包装类 | Byte | Short | Integer | Long | Float | Double | Character | Boolean |
包装类的构造方法(以Integer为例):
- public Integer(int)
- public Integer(String)
装箱:
- 概念:把基本数据类型数据包装成引用数据类型数据
- 方法:通过包装类
eg:Integer i=new Integer(100);这就把基本数据类型的100包装成引用数据类型了
拆箱:
-
概念:把引用数据类型数据转换为基本数据类型数据
-
方法:通过包装类的intValue()、byteValue()等类似方法
eg:Integer i=new Integer(100);(jdk9后就过时了)
i.floatValue();=======》这样就将一个引用数据类型的100转换为float类型的100.0 -
intValue():可以将一个引用数据类型的数据转换为int,其他类型的方法类似。
自动装箱自动拆箱(since jdk5)
-
自动装箱:Integer x = 100;
基本数据类型直接赋值给引用数据类型 -
自动拆箱:int y = x;
引用数据类型x直接转换为int类型
整数常量池
java中为了提高运行效率,将-128~127
的包装对象
提前创建好,放在方法区的整数常量池中,以后使用的时候就不再创建对象了,直接从整数常量池中取。
eg:
Integer i1=127;
Integer i2=127;
i1==i2; //返回true
Integer i3=128;
Integer i4=128;
i3==i4; //返回false -
static int parseInt(String s)
- 作用:字符串转换成int类型的方法
- 用法:Integer.parseInt("100");
- 其他类型方法类似parseDouble()、parseFloat().....