博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java自动装箱和拆箱浅析
阅读量:3722 次
发布时间:2019-05-22

本文共 1144 字,大约阅读时间需要 3 分钟。

自动装箱和拆箱 

基本说明

数据类型 字节大小 默认值 包装类 范围
byte 1 0 Byte -2^7 ~ 2^7-1
short 2 0 Short -2^15 ~ 2^15-1
int 4 0 Integer -2^31 ~ 2^31-1
long 8 0 Long -2^63 ~ 2^63-1
float 4 0.0 Float 32位符合IEEE 754标准的浮点数
double 8 0.0 Double 64位符合IEEE 754标准的浮点数
char 2 空格 Character 一个单一的16 位 Unicode 字符
boolean 1或4 false Boolean true或false

那问题来了什么时候自动装箱什么时候自动拆箱?

下面会选取int类型来讲解:
下面的代码就是使用int类型触发自动装箱和拆箱的操作。

        int number = 1;        Integer numberInt = Integer.valueOf("1");        // numberInt自动拆箱        boolean iss = number == numberInt;        // number自动装箱        boolean isss = numberInt.equals(number);        // number自动装箱        Object object = number;        // numberInt自动拆箱        numberInt++;        boolean issss = numberInt == 2;        // number自动装箱        Integer numberInts = number;        // numberInts自动拆箱        int numbers = numberInts;

反编译后

 
###可以总结出来这么几点:#####1、当一个封装类型使用等于去比较一个基本类型的时候,封装类型会自动拆箱去比较#####2、当封装类型数据进行算法运算时,会自动拆箱去运算#####3、当用Object类型去接受基本数据类型的时候,这个数据会进行装箱操作#####4、基本数据类型数据赋值给封装类型就会触发装箱操作#####5、封装类型数据赋值给基本数据类型的时候就会触发拆箱操作#####6、装箱调用的是valueOf方法,拆箱调用的是(基本类型名称+Value)方法,例如:Integer调用intValue,Long调用longValue

                                     

                                                  文章同时会更新到公众号,觉得对你有帮助或者有用的可以关注一下哦 

 

转载地址:http://jgfnn.baihongyu.com/

你可能感兴趣的文章
HTML给图片加上超链接
查看>>
JSP的内置隐式对象及其使用
查看>>
使用tvtk库建立一个三维对象
查看>>
简单的网页设计,以学校官网为例
查看>>
JDBC 连接MySql报错,The server time zone value is unrecognized
查看>>
使用SQLYog连接mysql报错 plugin caching_sha2_password could not be loaded
查看>>
MYSQL建表语句Warning:“utf8”目前是字符集UTF8MB3的别名,但在将来的版本中将是UTF8MB4的别名。请考虑使用UTF8MB4,以免造成歧义。
查看>>
idea创建项目及配置详解和测试代码
查看>>
Diamond types are not supported at language level '6'报错
查看>>
使用栈实现表达式的计算前缀、中缀、后缀表达式(逆波兰表达式)
查看>>
数据结构Java版之递归
查看>>
Scala 语言概述
查看>>
Scala的变量声明和数据类型详解
查看>>
数据结构——使用递归回溯实现迷宫问题(Java代码实现)
查看>>
数据结构——使用递归回溯实现八皇后问题(Java代码实现)
查看>>
Scala学习笔记(一)基本语法
查看>>
算法的时间复杂度与空间复杂度详解 (Java)
查看>>
数据结构之排序算法——冒泡排序(Java实现)
查看>>
数据结构之排序算法——堆排序(Java实现)
查看>>
Spring MVC的数据绑定(复杂数据绑定——数组与集合)
查看>>