包装类
-
概述
java语言是一个面向对象的语言,但是java中的基本数据类型却不是面向对象的。为了让基本数据类型具有对象的特性便于我们实际操作,所以就有了包装类。同时为了程序的效率,基本数据类型也是必须存在的。
比如:集合的操作中,我们就需要将基本类型数据转化成对象!(集合中只能存储 引用类型)类型名称 类型定义 取值范围 默认值 包装类 boolean 1位 布尔值,作二元判断 true,false false Boolean byte 8位 有符号整数 -128 ~ 127 0 Byte short 16位 有符号整数 -32765 ~ 32767 0 Short int 32位 有符号整数 -2147483648(-2³¹)~ 2147483647(2³¹-1) 0 Integer long 64位 有符号整数 -2⁶³~ (2⁶³1) 0 Long float 32位 浮点数 1.4E-45 ~ 3.4028235E38 0.0f Float double 64位 浮点数 4.9E-324 ~ 1.7976931348623157E308 0.0d Double char 16位 Unicode字符 0 ~ 65535 ‘\u0000 Character -
构造方法
仅以 Integer 类演示其他包装类均类似,
格式:Integer itg = Integer.valueOf(5); (构造方法已过时,类方法创建对象)public class Demo { public static void main(String[] args) { Integer itg1 = Integer.valueOf(110); System.out.println(itg1); Integer itg2 = Integer.valueOf("125"); System.out.println(itg2); } } ---*--- 输出结果: 110 //结果可以看出包装类重写了toString方法 125
该类没有无参构造,创建Integer对象必须传参,参数可以是 int 类型和 String 类型。(必须是数字字符串,否则解析异常)
-
自动装箱和拆箱
装箱:将基本数据类型转换为对应的包装类类型。
拆箱:将包装类类型转换为对应的基本数据类型。public class Demo { public static void main(String[] args) { //Integer itg1 = Integer.valueOf(110); //装箱 Integer itg1 = 110; //自动装箱 //int i1 = itg1.intValue(); //拆箱 int i1 = itg1; //自动拆箱 System.out.println(itg1); System.out.println(i1); } } ---*--- 输出结果: 110 110
包装类对象可以等效于对应的基本数据类型。包装类对象进行计算或者判断,该对象会自动进行拆箱成对应的基本数据类型。
-
常用方法
int 和 String 的相互转换public class Demo { public static void main(String[] args) { //int 转换 String int i = 225; String s1 = "" + i; //拼接 String s2 = String.valueOf(i); //String.valueOf()方法 System.out.println(s1); System.out.println(s2); System.out.println("--------"); //String 转换 int String s = "125"; Integer itg2 = Integer.valueOf(s);//Integer.valueOf()方法 int i1 = itg2; int i2 = Integer.parseInt(s); //Integer.parseInt()方法 System.out.println(i1); System.out.println(i2); } } ---*--- 输出结果: 225 225 -------- 125 125
int 转 String(推荐):String.valueOf(int i)
Stirng 转 int(推荐):Integer.parseInt(String s)