包装类
基本概念
针对八种基本数据类型相应的引用类型——包装类
有了类的特点之后便使用类中的方法了
包装类 | 基本数据类型 |
---|---|
Boolean | boolean |
Character | char |
Byte | byte |
Short | short |
Integer | int |
Long | long |
Float | float |
Double | double |
继承图
以上六种的父类是Number
包装类和基本数据类型的转换
基本类型 -> 包装类型是装箱,反之是拆箱
JDK5之前是手动拆箱和手动装箱
JDK5之后是自动拆箱和自动装箱
//JDK5 之前
int i = 1;
//装箱
Integer integer = new Integer(i);
Integer integer1 = Integer.valueOf(i);
//拆箱
int i1 = integer.intValue();
//JDK5 之后
int j = 1;
//自动
// public static Integer valueOf(int i) {
// if (i >= IntegerCache.low && i <= IntegerCache.high)
// return IntegerCache.cache[i + (-IntegerCache.low)];
// return new Integer(i);
// }
Integer integer2 = j;
// public int intValue() {
// return value;
// }
int j1 = integer2;
包装类与String
//包装类转String
Integer num = 1;
String s1 = num + "";
String s2 = num.toString();
String s3 = String.valueOf(num);
//String转包装类
String s = "123";
int i2 = Integer.parseInt(s);
// public Integer(String s) throws NumberFormatException {
// this.value = parseInt(s, 10);
// }
Integer integer3 = new Integer(s);
注意事项
- 三元运算符是一个整体,提高精度
- new Integer有范围,-128到127直接获取
//三元运算符
Object o = true ? new Integer(1) : new Double(2);
System.out.println(o);//1.0
//new Integer有范围
// * This method will always cache values in the range -128 to 127,
// * inclusive, and may cache other values outside of this range.
// public static Integer valueOf(int i) {
// if (i >= IntegerCache.low && i <= IntegerCache.high)
// return IntegerCache.cache[i + (-IntegerCache.low)];
// return new Integer(i);
// }
Integer integer4 = 1;
Integer integer5 = 1;
Integer integer6 = 128;
Integer integer7 = 128;
System.out.println(integer4 == integer5);//true
System.out.println(integer6 == integer7);//false
代码
package 包装类;
public class Test {
public static void main(String[] args) {
//JDK5 之前
int i = 1;
//装箱
Integer integer = new Integer(i);
Integer integer1 = Integer.valueOf(i);
//拆箱
int i1 = integer.intValue();
//JDK5 之后
int j = 1;
//自动
// public static Integer valueOf(int i) {
// if (i >= IntegerCache.low && i <= IntegerCache.high)
// return IntegerCache.cache[i + (-IntegerCache.low)];
// return new Integer(i);
// }
Integer integer2 = j;
// public int intValue() {
// return value;
// }
int j1 = integer2;
//包装类转String
Integer num = 1;
String s1 = num + "";
String s2 = num.toString();
String s3 = String.valueOf(num);
//String转包装类
String s = "123";
int i2 = Integer.parseInt(s);
// public Integer(String s) throws NumberFormatException {
// this.value = parseInt(s, 10);
// }
Integer integer3 = new Integer(s);
//注意
//三元运算符
Object o = true ? new Integer(1) : new Double(2);
System.out.println(o);//1.0
//Integer有范围
// * This method will always cache values in the range -128 to 127,
// * inclusive, and may cache other values outside of this range.
// public static Integer valueOf(int i) {
// if (i >= IntegerCache.low && i <= IntegerCache.high)
// return IntegerCache.cache[i + (-IntegerCache.low)];
// return new Integer(i);
// }
Integer integer4 = 1;
Integer integer5 = 1;
Integer integer6 = 128;
Integer integer7 = 128;
System.out.println(integer4 == integer5);//true
System.out.println(integer6 == integer7);//false
}
}
结尾
求点赞 求评论 求收藏 求分享 求关注