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