什么是包装类
- 基本数据类型所对应的引用数据类型
- Object可以统一所有数据,包装类的默认值是null
包装类对应
类型转换与装箱、拆箱
- 栈里边的数据,拿到堆里边叫装箱(基本类型转成引用类型),反之叫拆箱
//类型转换:装箱(基本类型转引用类型)
int num1 = 18;
//使用Integer类创建对象
Integer integer1 = new Integer(num1);//一种方法
Integer integer2 = Integer.valueOf(num1);//另外方法
//类型转换:拆箱(引用转基本)
Integer integer3 = new Integer(100);
int num2 = integer3.intValue();
//JDK1.5之后。提供自动拆箱和装箱
int age = 30;
//自动装箱
Integer integer4 = age;
//自动拆箱
int age2 = integer4;
- paraseXXX()静态方法:可以实现字符串和基本类型的转换
//基本类型转换字符串
int n1 = 100;
//1.使用+号
String s1 = n1 + "";
//2.使用Integer中的toString()方法
String s2 = Integer.toString(n1);
System.out.println(s1);//100
System.out.println(s2);//100
//字符串转换基本类型
String str = "150";
//使用Integer.parseXXX();
int n2 = Integer.parseInt(str);
System.out.println(n2);//150
//boolean字符串形式转成基本类型“true”--->true 非“true”--->false
String str2 = "true";//若不是treu(非true)则转换后是false(false也是false)
boolean b1 = Boolean.parseBoolean(str2);
System.out.println(b1);//true
- 注意:需保证类型兼容,否则抛出NumberFormatException异常
整数缓冲区
- Java预先创建了256个常用的整数包装类型对象
- 在实际应用当中,对已创建的对象进行复用
//面试题
Integer integer1 = new Integer(100);
Integer integer2 = new Integer(100);
System.out.println(integer1 == integer2);//false 引用类型,在堆里面,,地址不一样
Integer integer3 = 100;//自动装箱:实际Integer.valueOf(100);
Integer integer4 = 100;
System.out.println(integer3 == integer4);//true
Integer integer5 = 200;
Integer integer6 = 200;
System.out.println(integer5 == integer6);//false
/*
100在-128到127之内。所有返回的是Integer缓冲区里面的对象,所以地址一样
200不-128到127之内,缓冲区里没有,只能new Integer 在堆里面开辟空间,所以地址不同
实际上是-128到127之间的数都预先存放好了以供使用
*/
标签:26,包装,System,println,Integer,100,true,out
From: https://www.cnblogs.com/Mc9r4dy/p/18278298