40 java常用类_2 _包装类
什么是包装类
- 基本数据类型所对应的引用数据类型
- 基本类型的数据是存储在栈中,引用类型的数据是存储在堆里,栈里存放这个数据的地址
- Object可统一所有数据,包装类的默认值为null
- 包装类对应
基本数据类型 | 包装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
类型转换与拆箱、装箱 / 基本类型和字符串之间的转换
-
装箱:把基本数据类型转换成引用数据类型(把栈中的数据10放到堆中)
- 通过new引用类型:引用类型 变量名 = new 引用类型(基本类型数据/变量名);
- Integer integer1 = new Integer(num);
- 引用类型.valueOf() :引用类型 变量名 = 引用类型.valueOf(基本类型数据/变量名);
- Integer integer2 = Integer.valueOf(num);
-
拆箱:把引用数据类型转换成基本数据类型(把堆中的数据10放到栈中)
- 通过引用类型变量名.基本类型Vlaue();:基本类型 变量名 = 引用类型变量名.基本类型Vlaue();
- int i = integer1.intValue();
- char c = character1.charValue();
- double d = double1.doubleValue();
-
8种包装类提供不同类型间的转换方式:
- Number父类中提供的6种共性方法。(见下面代码)
- parseXXX()静态方法:实现字符串与基本类型之间的转换(见下面代码)
- 基本类型 变量名 = 引用类型.parseXXX(字符串); int i1 = Integer.parseInt(str3);
- 或基本类型 变量名 = 引用类型.valueOf(字符串); int i = Integer.valueOf(str3);
- String s = 基本类型数据/变量名+ “ ”;String str1 = i+" "; 或
- String s = 引用类型.toString(基本类型数据/变量名); String str2 = Integer.toString(i); 或
- String s = String.valueOf(基本类型数据/变量名); String str22 = String.valueOf(i);
package com.wlw.common_class.wrapper;
public class Demo01 {
public static void main(String[] args) {
//类型转换: 装箱:把基本数据类型转换成引用数据类型
int num = 10; //基本数据类型
Integer integer1 = new Integer(num); //装箱:把基本数据类型转换成引用数据类型
Integer integer2 = Integer.valueOf(num);//装箱
System.out.println("装箱:");
System.out.println(integer1+"\t"+integer2);
//类型转换: 拆箱:把引用数据类型转换成基本数据类型
Integer integer3 = new Integer(100);
int num2 = integer3.intValue(); //拆箱
System.out.println("拆箱:");
System.out.println(num2);
System.out.println("============int===============");
//jdk1.5之后,提供了自动装箱,拆箱
int age1 = 20;
//自动装箱
Integer integer4 = age1;
System.out.println("自动装箱:");
System.out.println(integer4);
//自动拆箱
int age2 = integer4;
System.out.println("自动拆箱:");
System.out.println(age2);
System.out.println("=============char==============");
char a = 'A';
Character character = new Character(a);//装箱
Character character1 = Character.valueOf(a);//装箱
Character character2 = a; //自动装箱
Character c = Character.valueOf('B');
char b = c.charValue();//拆箱
System.out.println("=============boolean==============");
boolean flag = true;
Boolean Bflag = new Boolean(flag);//装箱
Boolean Bflag2 = Boolean.valueOf(flag);//装箱
boolean flag2 = Bflag2.booleanValue();//拆箱
System.out.println("=============byte==============");
byte b1 = -1;
Byte B1 = new Byte(b1); //装箱
Byte B2 = Byte.valueOf(b1);//装箱
byte b2 = B2.byteValue();//拆箱
}
}
package com.wlw.common_class.wrapper;
public class Demo01 {
public static void main(String[] args) {
System.out.println("=============基本类型和字符串之间的转换==============");
//基本类型和字符串之间的转换
//1. 基本类型转换成字符串
//第一种
int i = 12;
String str1 = i+" ";
System.out.println(str1);
//第二种
String str2 = Integer.toString(i);
System.out.println(str2);
//第三种
String str22 = String.valueOf(i); //这个方法实质上也是调用Integer.toString();
System.out.println(str22);
//2. 字符转转换成基本类型
String str3 = "1502";
int i1 = Integer.parseInt(str3);
int i2 = Integer.valueOf(str3);
System.out.println(i1);
//boolean字符串形式转换成基本类型:"true"---> true 非"true"---->false
String s = "true";
boolean flag3 = Boolean.parseBoolean(s);
System.out.println(flag3); //true
String s1 = "tttt";
boolean flag4 = Boolean.parseBoolean(s1);
System.out.println(flag4); //false
}
}
/*
执行结果:
=============基本类型和字符串之间的转换==============
12
12
12
1502
true
false
*/