JavaSE进阶 第七章 常用类 (三) 基本数据类型对应的8个包装类

1. 基本数据类型对应的8个包装类

因为8种基本数据类型不够用,所以SUN提供了对应的8种包装类型,都属于用用数据类型

基本数据类型包装类型父类
byteByteNumber
shortShortNumber
intIntegerNumber
longLongNumber
floatFloatNumber
doubleDoubleNumber
booleanBooleanObject
charCharacterObject

2.Number类

Number是一个抽象类,无法实例化对象
负责拆箱的方法(数字包装类的子类都有):以…形式返回指定的数值

byte byteValue() 
abstract double doubleValue()
abstract float floatValue()
abstract int intValue()
abstract long longValue()
short shortValue()

示例

// int -->Integer
Integer i = new Integer(1213);
// Integer -->int
int x = i.intValue();// x = 123
float y = i.floatValue();// y = 1213.0

3.Integer类

3.1Integer类的构造方法

//Integer(int);
//Integer(String);

//int -->Integer
Integer x = new Integer(100);
//String -->Integer
Integer y = new Integer("123");

//类似的
// double -->Double
Double d = new Double(1.23);
// String -->Double
Double e = new Double("3.14");

3.2Integer类的自动装箱与自动拆箱

在JDK5之后,引入新特性,自动装箱与自动拆箱

  • 自动装箱:基本数据类型自动转换成包装类
  • 自动拆箱:包装类自动装换成基本数据类型
    这意味着Number类中的拆箱方法可以不使用
    示例:
// 自动装箱: 基本数据类型-->包装类
Integer x = 900;
// 自动拆箱:包装类-->基本数据类型
int y = x;

3.3Integer类最值常量

Integer.MAX_VALUE;
Integer.MIN_VALUE;
Byte.MAX_VALUE;
Byte.MIN_VALUE;

3.4JVM内存图

Integer z = 1000;//z是一个引用、变量,表村了一个Integer对象的内存地址
System.out.println(z + 1);//+两边是基本数据类型的数值,z是包装类会自动拆箱,装换为基本数据类型
Integer a = 1000;
Integer b = 1000;
//a == b false a、b引用保存不同的内存地址,指向不同的对象

Integer x = 127;
Integer y = 127;
// x == y true 
/*
java中未来提高程序的执行效率,将[-128,127]之间的所有的包装类对象提前创建好,
放到方法区的“整数型常量池”中,目的是只要用这个区间的数据就不需要new了,直接从整数型常量池中取出
*/

在这里插入图片描述

3.5Integer类中常用方法

(1)手动拆装箱

Integer x = new Integer(123);//不是一个数字包装成Integer是,编译没问题,运行是出现异常
int y = x.intValue();

(2) static int paseInt(String s)

// String --> int
int retValue = Integer.paseInt("123");
// int retValue = Inter.paseInt("中国"); NumberFormatException  

//类似的
double retValue2 = Double.paseDouble("3.14");
float retValue3 = Double.paseFloat("1.0");

(3)进制转换

//static String toBinaryString(int i) 十进制装换为二进制
Sting binaryString = Integer.toBInaryString(3);
//static String toHexString(int i) 十进制装换为十六进制
Sting hexString = Integer.toHexString(16);
//static String toOctalString(int i) 十进制装换为八进制
Sting octalString = Integer.toOctalString(8);

(4)static Integer valueOf()

Integer i1 = Integer.valueOf(100);
Integer i2 = Integer.Valueof("100");

4.String、int、Integer之间相互转换

//String -->int
int i1 = Integer.paseInt("100");
//int -->Sting
String s1 = i1 +"";

//int -->Integer
Integer x = 1000;
//Integer -->int
int y =x;

//String -->Integer
Integer k = Integer.valueOf("123");
//Integer -->String
String e = String.valueOf(k);

在这里插入图片描述

传送门

上一章:JavaSE进阶 第七章 常用类 (二) StringBuffer与StringBuilder
下一章:JavaSE进阶 第七章 常用类 (四) 时间类

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值