包装类

包装类

5.1 概述

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

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

5.2 装箱拆箱

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

  • 装箱:从基本类型转换为对应的包装类对象。(基本类型的数据-->包装类)
  • 构造方法:
    • Integer(int value)构造一个新分配的 Integer 对象,他表示指定的 int 值。
    • Integer(String s)构造一个新分配的Integer对象,它表示 String 参数所指示的 int 值。
    • 传递的字符串,必须是基本类型的字符串,否则会抛出异常 "100" 正确 "a" 抛异常
  • 静态方法:
    • static Integer valueOf(int i) 返回一个指定的 int 值的 Integer 实例。
    • static Integer valueOf(String s) 返回保存指定的String 的值的 Integer 对象
  • 拆箱:从包装类对象转换为对应的基本类型。(包装类-->基本类型的数据)
    • 成员方法:
      • int intValue() 以 int 类型返回该 Integer 的值。

用Integer与int为例:

基本类型 -- > 包装对象

// 使用构造函数
Integer i= new Integer(6);
// 使用包装类中的valueOf方法
Integer ii = Integer.valueIf("6");

包装对象-->基本数值

int num = i.intvalue();

5.3 自动装箱与自动拆箱

自动装箱与自动拆箱:基本类型的数据和包装类之间可以进行相互转换

JDK1.5之后出现的新特性

  • 自动装箱:直接把int类型的整数赋值于包装类

    如:Integer in = 1;就相当于 Integer in = new Integer(1);

  • 自动拆箱:int是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算

    如:in + 2;就相当于 in.intVale() + 2 = 3;

    int = in.intVale() + 2 = 3 又是一个自动装箱

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

5.4基本类型与字符串之间的转换

1.基本类型-->字符串(String)

  1. 基本类型的值+" " 最简单的方法(工作中常用)

  2. 包装类的静态方法toString(参数),不是Object类的toString方法()重载

    static String toString(int i)返回一个表示指定整数的string 对象。

  3. String类的静态方法valueOf(参数)

    static String valueOf(int i)返回 int 参数的字符串表示形式。

2.字符串(String)--> 基本类型

使用包装类的静态方法parseXXX("字符串");

如:

​ Integer类: static int parseInt(Sting s)

​ Double类:static double parseDouble(String s);

 public static void main(String[] args) {
        // 基本类型-->字符串
        int i1 = 100;
        String s1 = i1 +"";
        System.out.println(s1+999);

        String s2 = Integer.toString(100);
        System.out.println(s2+300);

        String s3 = String.valueOf(100);
        System.out.println(s3 + 100);

        // 字符串(String)--> 基本类型
        int i = Integer.parseInt(s1);
        System.out.println(i - 10);

        // 不能转换字符串报错 数字格式异常 NumberFormatException
        /*int a = Integer.parseInt("a");
        System.out.println(a);*/

    }
原文地址:https://www.cnblogs.com/anke-z/p/12507188.html