Java的自动拆装箱

目录(本文基于JDK1.8) 1. Java中的基本数据类型和包装类型是什么? 2. 自动拆箱和装箱的定义是什么? 3. 为什么需要自动拆箱和装箱? 4.自动拆箱和装箱是如何实现的? 4. 什么时候会发生到自动拆箱和装箱? 5.自动拆装箱需要注意的地方 5.1 自动拆装箱的小陷阱 5.2 Integer.valueOf()方法 5.3 Java8种基本类型的自动装箱代码...
摘要由CSDN通过智能技术生成

目录(本文基于JDK1.8)


 

 

1. Java中的基本数据类型和包装类型是什么?

基本数据类型 包装类型
int(4字节) Integer
short(2字节) Short
byte(1字节) Byte
long(8字节) Long
float(4字节) Float
double(8字节) Double
char(2字节) Character
boolean(未定) Boolean

2. 自动拆箱和装箱的定义是什么?

  • 自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱
    //装箱
    Integer i = 10;  
    //拆箱
    int n = i;   

3. 为什么需要自动拆箱和装箱?

  • JDK1.5以下,是不能直接地向集合(Collections)中放入原始类型值,因为集合只接收对象,我们需要将这些原始类型的值转换成对象,然后将这些转换的对象放入集合中。在JDK1.5开始引入了自动拆箱装箱,目的是将原始类型值转自动地转换成对应的对象
    //在Java 5之前,只能这样做
    Integer value = new Integer(1);
    //或者这样做
    Integer value = Integer.valueOf(1);
    //直接赋值是错误的
    //Integer value = 1;

4.自动拆箱和装箱是如何实现的?

下面我们看一个小例子,并把它反编译一下查看结果。(以前我们提到过java中的编译和反编译

    /**
     * @author Y 
     */
    public class TestPackaging {
        public static void main(String[] args) {
            Integer i = 10;
            int n = i;
        }
    }

    /*
     * 通过 CFR 0_132反编译.
     */
    package com.demo;
    
    public class TestPackaging {
        public static void main(String[] arrstring) {
            Integer n = Integer.valueOf((int)10);
            int n2 = n.intValue();
        }
    }


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值