包装类的概念:
通常情况下基本数据类型的变量不是对象,为了满足万物皆对象的理念就 需要对基本数据类型的变. 量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做包装. 类
装箱和拆箱
装箱:把基本数据类型转换成包装类型 拆箱:把包装类型转换成基本数据类型
数据装箱:将基本数据类型保存到包装类之中,一般利用构造方法完成
Integer类 : public Integer(int value);
Double类 : public Double(double value);
Boolean : public Boolean(boolean value);
数据拆箱:从包装类中获取基本数据类型
数值型包装类已经由 Number 类定义了拆箱的方法;
Boolean型:public boolean booleanValue();
*自动装箱和自动拆箱
相关代码:
int a1=5;
Integer a2 = 5;
System.out.println(a1);
System.out.println(a2);
System.out.println("--------------------");
//装箱:把基本数据类型转换成包装类型
//拆箱:把包装类型转换成基本数据类型
//装箱
Integer a3= new Integer(a1);
Integer a4= Integer.valueOf(a1);
//拆箱
int a5 =a3.intValue();//把a3通过调用方法后换成int类型
System.out.println("--------------------");
//自动装箱和自动拆箱
//自动装箱
Integer a6= a1;
//自动拆箱
int a7=a3;
System.out.println("--------------------");
基本数据类型和字符串的相互转换
八种基本数据类型
整数类型:byte、short、int、long
小数类型:float、double
字符类型:char
布尔类型:boolean
1、 整数数据类型
byte:1个字节,8位,256种状态,取值范围为【-128,127】
short:2个字节,16位,65536种状态,取值范围为【-32768,32767】
int:4个字节,32位,整数类型默认是int类型,取值范围约21亿
long:8个字节,64位,long类型表示long类型常量,要加L或者l,建议加L
2、 小数数据类型
float:4个字节,32位,单精度,能精确到6~7位,声明一个小数类型,要加F或者f,建议加F
double:8个字节,64位,双精度,能精确到15~16位,小数类型默认是double类型
3、 字符数据类型
char:2个字节,16位,字符表示Unicode(万国码)编码表中的每一个符号,每个符号使用单引号引起来,其中前128个符号和ASCII表相同
4、 布尔数据类型
boolean:占1位,有true和false2个值,一个表示真,一个表示假,一般用于表示逻辑运算
基本类型转换为字符串有三种方法:
-
使用包装类的 toString() 方法
-
使用String类的 valueOf() 方法
-
用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
//将基本类型转换为字符串(其他基本类型同理)
int a = 16;
String s1 = Integer.toString(a); //方法1
String s2 = String.valueOf(a); //方法2
String s3 = a + ""; //方法3
将字符串转换成基本类型有两种方法:
-
调用包装类的 parseXxx 静态方法。
-
调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
//将字符串转换为基本类型 String s = "16"; int a = Integer.parseInt(s); //方法1 int b = Integer.valueof(s); //方法2
相关代码:
//基本数据类型与字符串之间的转换 //基本数据类型可以自动装换成字符串 123 "123" System.out.println(1+"2"); //12 System.out.println(1+2+"3"); System.out.println("--------------------"); //字符串需要手动进行数据类型转换 "123"---123 "abc"----异常 int n= Integer.parseInt("123"); double d= Double.parseDouble("5.21"); boolean b=Boolean.parseBoolean("true"); float f= Float.parseFloat("1.0"); long l= Long.parseLong("123456"); short s = Short.parseShort("13"); byte b1=Byte.parseByte("69"); char c= Character.valueOf('A'); System.out.println(n); System.out.println(d); System.out.println(b); System.out.println(f); System.out.println(l); System.out.println(s); System.out.println(b1); System.out.println("--------------------"); int n1 = Integer.parseInt("8D3FE",16); System.out.println(n1);
运行结果如下: