jdk1.5之前
- 装箱:Integer i = new Integer(10)
jdk1.5之后
- Integer i = 5;装箱
- int n = i; 拆箱
package com.shujia.wyh.day17;
/*
需求1:求出100这个数据的二进制,八进制,十六进制。
需求2:如何使用代码求出int类型等基本数据类型的范围呢?
如果按照之前的做法,需求1我们可以按照数学逻辑一步一步计算,但是需求2,我们不知道从哪下手。
如果说有一种办法,可以对基本数据类型进行更多的操作,更方便的操作就好了。
Java针对每一个基本数据类型都提供了一个对应的类给我们使用,既然是类了,就可以创建对象,调用类中的方法来实现需求。
这样的对应着每一个基本数据类型的类,称之为包装类。
基本数据类型: 包装类类型:
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
综上所述,每一个基本数据类型都一个对应的包装类,上课只举例int对应的包装类Integer
包装类类型的使用场景:
1、在今后的集合学习中会使用到(泛型)
2、用于基本数据类型与字符串之间做转换
*/
public class PackClassDemo1 {
public static void main(String[] args) {
//需求1:求出100这个数据的二进制,八进制,十六进制。
//int类型对应的包装类Integer
//public static String toBinaryString(int i)在基数2中返回整数参数的字符串表示形式为无符号整数。
String s = Integer.toBinaryString(100);
System.out.println("100的二进制是:" + s);
//public static String toOctalString(int i)在基数8中返回整数参数的字符串表示形式为无符号整数。
String s1 = Integer.toOctalString(100);
System.out.println("100的八进制是:" + s1);
//public static String toHexString(int i)返回整数参数的字符串表示形式,作为16位中的无符号整数。
String s2 = Integer.toHexString(100);
System.out.println("100的十六进制是:" + s2);
// 需求2:如何使用代码求出int类型等基本数据类型的范围呢?
//static int MAX_VALUE 一个持有最大值一个 int可以有2 31 -1。
//static int MIN_VALUE 的常量保持的最小值的 int可以具有,-2 31。
//获取int类型的最大范围值
System.out.println(Integer.MAX_VALUE);
//获取int类型的最小范围值
System.out.println(Integer.MIN_VALUE);
}
}
package com.shujia.wyh.day17;
/*
int类型与String类型做相互转换
int -- String
String -- int
*/
public class PackClassDemo2 {
public static void main(String[] args) {
//int -- String
int num = 100;
//方式1:
String s1 = "" + num;
System.out.println(s1);
//方法2:(推荐第二种)
String s2 = String.valueOf(100);
System.out.println(s2);
//方式3:
//int -- Integer -- String
Integer i = 100; //自动装箱 将基本数据类型的数据直接赋值给对应的包装类类型
// System.out.println(i);
//public String toString()返回String表示此对象Integer的价值。
// 该值被转换为带符号的十进制表示形式,并作为字符串返回,就像将整数值作为toString(int)方法的参数给出。
String s3 = i.toString();
System.out.println(s3);
System.out.println("===================================");
//String -- int
String string = "100";
//方式1:
//String -- Integer -- int
// Integer decode = Integer.decode(string);
// System.out.println(decode);
// //public int intValue()将 Integer的值作为 int 。
// int i1 = decode.intValue();
// System.out.println(i1);
//方式2:
//String -- Integer -- int
//Integer(String s)
//构造一个新分配 Integer对象,表示 int由指示值 String参数。
Integer integer = new Integer(string);
int i2 = integer.intValue();
System.out.println(i2);
//方式3:(最常用的)
//public static int parseInt(String s)将字符串参数解析为带符号的十进制整数。
int i1 = Integer.parseInt("100");
System.out.println(i1);
}
}