八大基本数据类型以及对应包装类

本文介绍了Java的八大基本数据类型及其对应的包装类,探讨了包装类的作用、Number类的共同方法,重点剖析了Integer类,并涉及缓存池、自动装箱拆箱及Integer与其他类型之间的转换。此外,文章还涵盖了包装类在实际开发中的应用场景和优化技巧。
摘要由CSDN通过智能技术生成

八大基本数据类型以及对应包装类

八大基本数据类型

  • byte/8
  • char/16
  • short/16
  • int/32
  • float/32
  • long/64
  • double/64
  • boolean/~

注:具体大小没有明确规定,JVM 会在编译时期将 boolean 类型的数据转换为 int,使用1来表示 true,0 表示
false。JVM ⽀持 boolean 数组,但是是通过读写 byte 数组来实现的。

包装类

java中为8种基本数据类型对应准备了8种包装类型。
8种包装类属于引用数据类型

1. 为什么要再提供8种包装类?

因为8种基本类型不够用。我们有时需要把基本类型作为Object使用。

基本数据类型包装类型
bytejava.lang.Byte(父类Number)
shortjava.lang.Short(父类Number)
intjava.lang.Integer(父类Number)
longjava.lang.Long(父类Number)
floatjava.lang.Float(父类Number)
doublejava.lang.Double(父类Number)
booleanjava.lang.Boolean(父类Object)
charjava.lang.Character(父类Object)

2. Number类

8种包装类中其中6个都是数字对应的包装类,他们的父类为Number,研究一下Number中公共的方法。
Number是一个抽象类,无法实例化对象。
Number类中有以下方法用于拆箱。
Number类的方法

// 基本数据类型向引用数据类型转换(装箱)
Integer i = new Integer(123);
// 将引用数据类型转换成基本数据类型(拆箱)
float f = i.floatValue();

3. Integer

以上8种包装类,重点以java.lang.Integer为代表进行学习

// 构造函数
Integer i = new Integer(100);
Integer j = new Integer("123");

// 访问包装类的常量,来获取最大值和最小值
Integer.MAX_VALUE 2147483647
Integer.MIN_VALUE

// 在JDK1.5之后支持自动装箱和自动拆箱
// 自动装箱: int自动转换为Integer
Integer x = 100;
// 自动朝拆箱: Integer自动转换为int
int y = x;

x+1 //不会报错,x自动拆箱为int,因为+运算符右边是基本数据类型,+要求两边都是基本数据类型
x == y // true 这里不会自动拆箱为int,因为==运算符不需要两边运算数为int类型

// 常用的两个方法
// 1.intValue() 手动拆箱
Integer i = 123;
int retValue = i.intValue();
// 2. static int parseInt(String s) 字符串转数字  静态方法 
int retValue = Integer.parseInt("123");
// 如果字符串不是数字,会抛出 NumberFormatException的异常

4. 缓存池

java中为了提高程序的执行效率,将-128~127之间包装对象提前创建好,放到了一个方法区的“整数型常量池”中,目的是只要用这个区间的数据不需要再new,直接从整数型常量池取出来。
用static final修饰的对象,会存放在方法区常量池中。

5. Integer int String 互转

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值