Java 之 包装类、装箱与拆箱、 字符串与基本数据类型转换

本文详细介绍了Java中的包装类,包括自定义包装类的方法、装箱与拆箱的概念及使用方式,以及基本数据类型与字符串之间的转换技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.包装类
包装类就是讲基本数据类型封装在类中。

eg:自己定义一个包装类

class IntDemo{
    private int num;
    public IntDemo(int num){
        this.num = num;
    }
    public int intValue(){
        return this.num;
    }
}

这时候的IntDemo实际上就是int 数据类型的包装类,利用IntValue就可以实现基本数据类型变为对象的需求。

eg:IntDemo的使用:

public static void main(String[] args) {
    Object obj = new IntDemo(55);
    //向下转型
    IntDemo temp = (IntDemo) obj;
    //取出里面的基本数据类型
    System.out.println(temp.intValue());
}

结论:
将基本数据类型包装为一个类对象的本质就是使用Object进行接收处理。

Java为了方便开发,专门提供了包装类的使用,而对于包装类的使用,提供; 俩种类型:

  • 对象型(Object的直接子类):Boolean ,Character(char);
  • 数值型(Number的直接子类):Byte , Double ,Short , Long ,
    Interger(int) , Floart

2.装箱与拆箱

在包装类与基本数据类型之中存在俩个概念:

  • 装箱:将基本数据类型变为包装类对象,利用每一个包装类提供的构造方法实现装箱处理。
  • 拆箱:将包装类中包装的基本数据类型取出。利用Number 类中提供的六种方法。
    eg:手工装箱与拆箱:
//装箱
Integer num = new Integer(55);
//拆箱
int data = num.intValue();
System.out.println(data);

在JDK1.5以后,提供了自动拆装箱的机制,最为重要的是由于此类机制的存在,可以直接利用包装类的对象进行各种数学计算。

eg:自动装箱与拆箱处理:

 //自动装箱
Integer x = 55;
//可以直接利用包装类对象操作
 System.out.println(x * 5);

比较:“==” 和 “equals” 问题:
eg:

Integer num1 = new Integer(10);
Integer num2 = new Integer(10);
  System.out.println(num1 == num2); //false
  System.out.println(num1 == new Integer(10)); //false
  System.out.println(num1.equals(new Integer(10))); //true
  1. 对于手动装箱的对象来说,都是在堆上开辟了新空间。使用“==”比较时,结果一定是false。
  2. 自动装箱时:Integer var = ? 在-128至 127 范围内的赋值,Integer对象是在IntegerCache.cache 产生,会复用已有对象。这个区间的Integer 值可以直接使用“==” 进行判断,但是这个区间之外的所有数据,都会在堆上产生,不会复用已有对象。

阿里编码规范:所有的相同类型的包装类型的包装类对象之间值的比较,全部使用equals方法比较。

3.字符串与基本数据类型转换

  1. String类变为int类型:
    public static int parseInt(String s) throws
  2. String变为double类型:
    public static double parseDouble(String s)throws
  3. String变为Boolean类型:
    public static boolean parseBoolean(String s)

eg:将字符串变为int型

String str = "123";
int num = Integer.parseInt(str);
System.out.println(num);

将字符串变为double型:

String str = "123";
double num = Double.parseDouble(str);
System.out.println(num);

需要注意的是,将字符串转为数字的时候,字符串的组成有非数字,那么转换就会出现错误NumberFormatException。所以在进行字符串与数值转换时,首先判断字符串是否由纯数字组成。

而字符串与boolean转换就不受影响。转boolean类型时,只要字符串不为“true”,结果都为false。
eg:

String str = "123";
boolean num = Boolean.parseBoolean(str);
System.out.println(num);

4. 基本数据类型转为字符串:

①任何数据类型使用了“+”连接空白字符串就变为了字符串类型。

②使用String类中提供的valueOf()方法。

String str = String valueOf(100);
System.out.println(str);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值