0%

Java基础(包装类)

一、包装类概述

Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class) , 包装类和基本数据类型的对应关系如下表所示:

基本数据类型 包装类
byte Byte
boolean Boolean
short Short
char Character
int Integer
long Long
float Float
double Double

在这八个类名中,除了Integer和Character类以后,其它六个类的类名和基本数据类型一直,只是类名的第一个字母大写即可。

二、基本数据类型与包装类的互转

  • 基本数据类型——>包装类:使用包装类的构造器

  • 包装类——>基本数据类型:调用包装类的 xxxValue( )

1
2
3
4
5
6
7
8
9
10
11
int n = 10;

Integer in = new Integer(100);

//将int类型转换为Integer类型

Integer in1 = new Integer(n);

//将Integer类型的对象转换为int类型

int m = in.intValue();

三、自动装箱与拆箱

JDK自从1.5(5.0)版本以后,就引入了自动拆装箱的语法,也就是在进行基本数据类型和对应的包装类转换时,系统将自动进行。使用示例代码如下:

1
2
3
4
5
6
7
8
9
//int类型会自动转换为Integer类型

int m = 12;

Integer in = m;

//Integer类型会自动转换为int类型

int n = in;

所以在实际使用时的类型转换将变得很简单,系统将自动实现对应的转换。

四、基本数据类型包装类与String类型互转

基本数据类型包装类——>String类型:调用String重载的valueOf(xxx)

1
2
3
4
5
6
7
8
int num = 2017;
//方式1:连接运算
String time= ""+num; //右边最终结果是String
//方式2:调用String的valueOf(xxx)
String str = String.valueOf(num); //结果是 "2017"

String str1 = "123";
int value1 = Integer.valueOf(str1);//结果是int 123

String类型——>基本数据类型包装类:调用包装类的parseXxx(String s)

1
2
String str = "123";
int num1 = Integer.parseInt(str); //结果是 123

五、Java包装类的一些常见知识点归纳

  • Java包装类常量池
    Java的8种基本类型(Byte, Short, Integer, Long, Character, Boolean, Float, Double), 除Float和Double以外, 其它六种都实现了常量池, 但是它们只在大于等于-128并且小于等于127时才使用常量池。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static void main(String[] args) {  
//常量池的测试
System.out.println("Integer的测试");
Integer a = 127;
Integer b = 127;
System.out.println(a == b); //true

a = 128;
b = 128;
System.out.println(a == b); //false

a = -128;
b = -128;
System.out.println(a == b); //true

a = -129;
b = -129;
System.out.println(a == b); //false

// 测试Boolean
System.out.println("测试Boolean");
Boolean c = true;
Boolean d = true;
System.out.println(c == d); //true
d = new Boolean(true);
System.out.println(c == d); //false
}
-------------本文结束感谢您的阅读-------------