Java常用类之包装类
包装类
Java中一切皆对象???数据类型的划分为基本数据类型和引用数据类型,但基本数据类型怎么成为对象呢?为解决这个问题,包装类就起了作用
基本内容
基本数据类型所对应的引用数据类型。
基本数据类型 | 包装类 |
---|---|
int | Integer |
char | Character |
short | Short |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
byte | Byte |
-
Integer、Byte、Float、Double、Short、Long都属于Number类的子类,Numbe类本身提供了一系列的返回以上6中基本数据类型的操作。
-
Character和Boolean属于Object的直接子类。
装箱与拆箱
装箱:将一个基本数据类型变为包装类的,这样的过程成为装箱操作。
拆箱:将一个包装类变为基本数据类型的过程称为拆箱操作。
int x = 30;//基本数据类型
Integer num = new Integer(x);//装箱
Integer num2 = Integer.valueOf(x);//装箱
int temp = num.intValue();//拆箱
//JDK1.5之后自动装箱和拆箱
int a = 15;
Integer b = a;//自动装箱
int c=b;//自动拆箱
自动装箱和拆箱实质:编译器编译时调用包装类的相应方法。
//基本类型转为字符串
int n1 = 255;
//第一种,使用+号
String s1 = n1+"";
//第二种,使用Integer中的toString()方法
String s2 = Integer.toString(n1);
//把n1转换为16进制(修改radix的值来改变进制数)
String s3 = Integer.toString(n1, 16);
//字符串转为基本类型
String str = "150";
//使用Integer.parseXXX()
int i = Integer.parseInt(str);
//boolean字符串形式转成基本类型时,"tree"----> tree,非"tree"---->false
String str2 = "true";
String str3 = "treo";
boolean b = Boolean.parseBoolean(str2);
boolean c = Boolean.parseBoolean(str3);
System.out.println(b);
System.out.println(c);
注意:需保证类型兼容,否则抛出NumberFormatException异常
整数缓存区
-
Java预先创建了256个常用的整数包装类型对象
-
在实际开发中,对已创建的对象进行复用
package lesson2;
public class Demo02 {
public static void main(String[] args) {
Integer integer1 = new Integer(100);
Integer integer2 = new Integer(100);
System.out.println(integer1 == integer2);
//打印出来的是false,引用对象类型比较的是地址,是不一样的
Integer integer3 = 100;
Integer integer4 = 100;
//自动装箱实际上是调用的是 Integer.valueOf()方法,并不是new出来的
//Integer integer3 = Integer.valueOf(100);
//100在-128到127之间,所以地址一样
System.out.println(integer3 == integer4);
Integer integer5 = 200;
Integer integer6 = 200;
System.out.println(integer5 == integer6);
//200不在-128到127之间,会重新new,所以是false
}
}
可以参考此博客
https://blog.csdn.net/m0_46802583/article/details/119102345