其他分享
首页 > 其他分享> > 二十九、包装类

二十九、包装类

作者:互联网

1、概述

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:

基本类型 对应的包装类(位于java.lang包中)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

包装类的作用

  1. java中的基本数据类型没有方法和属性,而包装类就是为了让基本数据类型拥有方法和属性,实现对象化交互
  2. 字符串和基本数据类型做转换

2、装箱与拆箱

基本类型与对应的包装类对象之间,来回转换的过程为 “装箱” 和 “拆箱”:

用 Integer 与 int为例:(看懂代码即可)

基本类型 -----> 包装对象

//使用构造函数
Integer i = new Integer(4);
Integer i2 = new Integer("5");

//使用包装类中的valueOf方法
Integer i3 = Integer.valueOf(4);

包装对象 -----> 基本类型

int num = i.intValue();

自动装箱与自动拆箱

由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如:

Integer i = 4;
//自动装箱。相当于Integer i = Integer.valueOf(4);

i = i + 5;
//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;
//加法运算完成后,再次装箱,把基本数值转成对象。

3、基本类型与字符串之间转换

3.1、基本类型转换为String

方式一:直接在数字后面加一个空字符串

方式二:通过String类 静态方法 valueOf()

【代码体现】
public class IntegerDemo {
    public static void main(String[] args) {
        //int --- String
        int number = 100;
        //方式1
        String s1 = number + "";
        System.out.println(s1);
        
        //方式2
        //public static String valueOf(int i)
        String s2 = String.valueOf(number);
        System.out.println(s2);
    }
}    

3.2、String转换成基本类型

除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:

方法 描述
public static byte parseByte(String s) 将字符串参数转换为对应的byte基本类型
public static short parseShort(String s) 将字符串参数转换为对应的short基本类型
public static int parseInt(String s) 将字符串参数转换为对应的int基本类型。
public static long parseLong(String s) 将字符串参数转换为对应的long基本类型
public static float parseFloat(String s) 将字符串参数转换为对应的float基本类型
public static double parseDouble(String s) 将字符串参数转换为对应的double基本类型
public static boolean parseBoolean(String s) 将字符串参数转换为对应的boolean基本类型

方式一:调用 Integer 下面的 valueOf() 方法,利用 自动拆箱,自动把 Integer 转为 int。

方式二:通过 Integer 静态方法 parseInt() 进行转换

public class IntegerDemo {
    public static void main(String[] args) {
        //String --- int
        String s = "100";
        //方式1:String --- Integer --- int
        int i = Integer.valueOf(s);
        System.out.println(x);
        
        //方式2
        //public static int parseInt(String s)
        int y = Integer.parseInt(s);
        System.out.println(y);
    }
}

注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException异常

问题:为什么java没有提供char转换的方法?因为char可以直接转为int型

4、注意事项

  1. 包装类对象 是一个对象,初始值为null
  2. Java 中除了float 和double 的其他基本数据类型,都有常量池
    • 整数类型:[-128,127]值在常量池
    • 字符类型:[0,127]对应的字符在常量池
    • 布尔值:true、false 在常量池
  3. 在常量池中的数据,会进行共享使用,减少频繁创建,从而提高性能;不在常量池才会常见新的对象。

标签:基本,String,包装,二十九,int,类型,Integer,public
来源: https://www.cnblogs.com/6ovo6/p/14933318.html