40 java常用类_2 _包装类

什么是包装类

  1. 基本数据类型所对应的引用数据类型
  2. 基本类型的数据是存储在栈中,引用类型的数据是存储在堆里,栈里存放这个数据的地址
  3. Object可统一所有数据,包装类的默认值为null
  4. 包装类对应

基本数据类型

包装类型

byte

Byte

short

Short

int

Integer

long

Long

char

Character

float

Float

double

Double

boolean

Boolean

类型转换与拆箱、装箱 / 基本类型和字符串之间的转换

  1. 装箱:把基本数据类型转换成引用数据类型(把栈中的数据10放到堆中)
  • 通过new引用类型:引用类型 变量名 = new 引用类型(基本类型数据/变量名);
  • Integer integer1 = new Integer(num);
  • 引用类型.valueOf() :引用类型 变量名 = 引用类型.valueOf(基本类型数据/变量名);
  • Integer integer2 = Integer.valueOf(num);
  1. 拆箱:把引用数据类型转换成基本数据类型(把堆中的数据10放到栈中)
  • 通过引用类型变量名.基本类型Vlaue();:基本类型 变量名 = 引用类型变量名.基本类型Vlaue();
  • int i = integer1.intValue();
  • char c = character1.charValue();
  • double d = double1.doubleValue();
  1. 8种包装类提供不同类型间的转换方式:
  1. Number父类中提供的6种共性方法。(见下面代码)
  2. 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
*/