【JAVA基础篇】彻底搞懂拆箱装箱
什么是装箱拆箱?
Java有8种基本数据类型,并且为这8种类型提供了包装器类型。比如说int类型的包装器类型是Integer。
装箱是指将基本数据类型转换成对应的包装器类型。拆箱是指将包装器类型转换基本数据类型。
Integer i = 10; //自动装箱
int n = i; //自动拆箱
装箱拆箱是如何实现的
在装箱的时候自动调用的是Integer的valueOf(int)方法。而在拆箱的时候自动调用的是Integer的intValue方法。
也就是说Integer i = 10实际上是Integer.valueOf(10),int n = i实际上是i.intValue()
面试中的相关问题
Integer integer = 1;Integer integer1 = new Integer(1);//包装器类型的构造方法必然会创建一个新的对象Integer integer3 = 1;int i = 1;System.out.println(integer==integer3);//Integer.valueOf会对-128-127的数做缓存,所以integer和integer3指向同一个对象System.out.println(integer==integer1);//两个操作是引用类型时,这种情况不会触发拆箱,==是比较两个对象的内存地址,结果是falseSystem.out.println(integer==i);//,integer会拆箱成int类型,结果是trueSystem.out.println(integer<integer1);//integer和integer1都会拆箱成int类型,结果是false
注意:除了==或者!=操作两个包装器实例的情况是比较对象内存地址外,其他的操作符操作包装器类型的话都会触发自动拆箱。
【JAVA基础篇】彻底搞懂拆箱装箱相关推荐
- 拆箱装箱有什么作用JAVA_基础--最简单明了的拆箱装箱解释,带实例
前言 在JAVA中,拆箱和装箱操作是发生在基本数据类型和其包装类之间的一种操作. JAVA中的八种基本类型有:byte short int long float double boolean char ...
- 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)
菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...
- 你所需要的java基础篇深入解析大汇总
java基础篇深入解析大总结 java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 java基础(三) 加强型for循环与Iterator java基础(四) java运算顺序 ...
- 《Java 后端面试经》Java 基础篇
<Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...
- 高频面试真题答案 -java后端 -java基础篇
原贴 2022届秋招高频面试真题汇总,千题奉送!!!- 后端篇_笔经面经_牛客网 整理答案: 类加载机制 47 双亲委派机制 24 new一个对象的过程 4 java程序是如何运行起来的? 1 jvm ...
- 菜鸟学习笔记:Java基础篇4(面向对象三大特征)
菜鸟学习笔记:Java面向对象篇中 继承 概念 方法重写(override) Object类 Super关键字 组合 final关键字补充 封装 访问控制符 多态 继承 概念 继续上一篇的例子: #m ...
- 菜鸟学习笔记:Java基础篇3(面向对象思想、程序执行过程内存分析、面向对象重要概念)
菜鸟学习笔记:Java面向对象篇上 Java面向对象的思想 Java程序执行过程内存分析 Java垃圾回收机制 构造方法 方法重载(overload) static关键字 this关键字 Java面向 ...
- Java程序员应该搞懂的六个问题
Java程序员应该搞懂的六个问题 太平洋电脑网 作者:雷少 对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题 ...
- Java基础篇--设计模式
目录 前言 设计模式 创建型模式 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 亨元模式 代理模式 行为型模式: 访问者模 ...
最新文章
- [JMX一步步来] 1、JMX的Hello World
- java练气期(1)----java高级(JDBC)
- VTK:Rendering之PhysicalBasedRendering
- 2015蓝桥杯省赛---java---B---6(加法变乘法)
- mfc 添加 excel类给定关键字不在字典中_pyppeteer最为核心类Page的接口方法
- 【转载】deque双向队列
- Docker系列(五)实战:在容器中部署静态网站
- 创意视觉应用︱基于深度学习的CVaaS计算机视觉即服务案例(Computer Vision as a Service)
- 采样定理的证明与推导
- 微型计算机存储器cache,微型计算机存储器系统中的Cache是
- c++ 字母降落小游戏
- 什么是Java(什么?Java?)
- [转载]GIS派系大解密(转)_拔剑-浆糊的传说_新浪博客
- Vue React大屏可视化进阶
- 按颜色分类:青绿色系(Blue Green)
- 一次服务器硬盘损坏修复记录贴(顺便把服务器硬件信息都搞清楚了)
- 【安卓 R 源码】Activity 启动流程及其生命周期源码分析
- 简述计算机桌面背景更换的流程,苹果电脑桌面壁纸怎么更换【详细步骤】
- win10下Abaqus 6.14 安装
- 可视化Redis软件RDM(RedisDesktopManager)的安装和使用
热门文章
- php在线考试系统模板下载,PHPEMS在线模拟考试系统 v6.1
- Linux上的js解码,使用JavaScript实现Base64编码与解码
- JsonData工具类
- SpringBoot2 中 spring.http.multipart.max-file-size 报错问题
- 企业实战_09_MyCat 搭建Mysql 一主三从复制环境
- Flowable 数据库表结构 ACT_HI_TASKINST
- WPS重复数据高亮显示
- 第五篇:路由网关(zuul) zuul路由 服务过滤 (Finchley版本)V2.0_dev
- 编写一个C程序,实现以下功能:用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s
- Qt在指定区域内拖动窗口