美文网首页
自动装箱

自动装箱

作者: mrjunwang | 来源:发表于2018-07-13 12:48 被阅读0次

Java提供了将基本类型自动转化为其对应类的对象以及反过来将基本类型对应类对象转换为基本类型的功能,前者叫装箱(boxing)后者叫拆箱(unboxing)。

基本类型和对应的装箱类型如下表

基本类型 装箱类型
boolean Boolean
byte Byte
char Character
float Float
int Integer
long Long
short Short
double Double

自动装箱

自动装箱会发生在以下几种情况:

1. 参数传递

作为参数传递时,一个方法需要一个类,实际却传递了一个基本类型。

class AutoboxingExample1
{
    public static void myMethod(Integer num){
        System.out.println(num);
    }
    public static void main(String[] args) {
        // 自动装箱,2转化为Integer(2)
        myMethod(2);
    }
}

2. 赋值

将一个基本类型的值赋给一个类。

Integer inum = 3; //Assigning int to Integer: Autoboxing
Long lnum = 32L; //Assigning long to Long: Autoboxing

自动拆箱

跟自动装箱对应也有如下情况:

1. 参数传递

作为参数传递时,一个方法需要一个基本类型,实际却传递了一个类。

class UnboxingExample1
{
    public static void myMethod(int num){
        System.out.println(num);
    }
    public static void main(String[] args) {
        Integer inum = new Integer(100);
        // 自动拆箱,Integer(100)转化为100
        myMethod(inum);
    }
}

2. 赋值

将一个类的值赋给一个基本类型。

Integer inum = new Integer(5);
int num = inum; //unboxing object to primitive conversion

原理

自动装箱和拆箱都是编译器做的工作,在编译阶段就已经做好了。

对于自动装箱,代码Integer number = 100;会被编译器翻译成Integer number = Integer.valueOf(100);;而对于拆箱

Integer num2 = new Integer(50);
int inum = num2;

会被翻译成

Integer num2 = new Integer(50);
int inum = num2.intValue();

注意

不要在比较值的时候混合使用基本类型和对应的装箱类。对于基本类型使用== < >进行比较,而对于类使用equals compareTo方法进行比较。

相关文章

  • 装箱与拆箱详解笔记

    1、什么是自动装箱与拆箱 //自动装箱Integer integer = 100;//自动拆箱int i = in...

  • (超详细)Java自动装箱拆箱

    详解自动拆箱与自动装箱 一、 什么是自动装箱、自动拆箱 简单一点说,装箱就是自动将基本数据类型转换为包装器类型,拆...

  • jdk5新特性

    自动装箱与拆箱 // 自动装箱:值转对象Integer n = 1;// 自动拆箱:对象转值int m = n; ...

  • Java自动装箱和拆箱,包装类缓存机制和JVM调节

    关于Java自动装箱和拆箱 基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unbox...

  • java自动拆装箱

    一、自动拆装箱 自动装箱过程就是通过调用valueOf方法实现(如:Integer.valueOf(10)),而拆...

  • Java的自动装箱&&拆箱

    什么叫自动装箱和拆箱 简单来说: 自动装箱:就是自动将基础类型转换为包装器类型自动拆箱:就是自动将包装器类型转换为...

  • 自动装箱

    Java提供了将基本类型自动转化为其对应类的对象以及反过来将基本类型对应类对象转换为基本类型的功能,前者叫装箱(b...

  • Java自动装箱和拆箱机制

    自动装箱与拆箱概念 比如 这个过程中会自动根据数值创建对应的 Integer对象,这就是装箱。而 自动将包装器类型...

  • Java基础知识14-自动装箱

    从 JDK 5 开始, Java 增加了两个重要特性: 自动装箱和自动拆箱. 自动装箱时这样一个过程: 无论何时...

  • JAVA-收集-持续更新...

    1、阐述下对象的自动装箱和拆箱 2 基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自...

网友评论

      本文标题:自动装箱

      本文链接:https://www.haomeiwen.com/subject/ytpjpftx.html