自动装箱和拆箱

自动装箱(autoboxing)和拆箱(unboxing):将基本数据类型和包装类自动转换。

自动装箱:

        基本类型的数据处于需要对象的环境中时,会自动转为“对象”。

以 Integer 为例:

        Integer  i  =  5;

        编译器会自动转成:Integer  i  =  Integer.valueOf(5),这就是 Java 的自动装箱。

自动装箱:

        每当需要一个值时,对象会自动转成基本数据类型,没必要再去显示调用 intVaule()、doubleValue()等转型方法。

        Integer  i  =  Integer.valueOf(5);

        int  j  =  i;

        编译器会自动转成:int  j  =  i.intValue();

        这样的过程就是自动拆箱。

自动装箱/拆箱的本质是:

        自动装箱与拆箱的功能是编译器来帮忙,编译器在编译时依据所编写的语法,决定是进行装箱或拆箱动作。

自动装箱:

Integer i = 100;//自动装箱
//相当于编译器自动为您作以下的语法编译:
Integer i = Integer.valueOf(100); //调用的是valueOf(100),而不是new Integer(100)

自动装箱与拆箱的功能是所谓的“编译器蜜糖”,虽然使用这个功能很方便,但在程序运行阶段需了解Java的语义。如下所示的程序是可以通过编译的:

包装类空指针异常问题:

public class Test1{public static void main(String[] args){Integer i = null;int j = i;}
}

执行结果如图所示:

运行结果之所以会出现空指针异常,是因为如上代码相当于:

public class Test1{public static void main(String[] args){Integer i = null;//int j = i;//以上一行代码在编译时期是合法的,但是在运行时期会有错误,因为其相当于下面的代码int j = i.intValue();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】-锁的使用

1、锁的粒度分类 1、全局锁 一般用于数据库备份,整个库只读 FLUSH TABLES WITH READ LOCK 2、表级锁 细分为: 1)意向锁 Intention 事务A对表加行级锁,这行记录就只能读不能写。 事务B申请增加表级锁,如果他申请…

精讲:结构体

大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答。 一、结构体 C语言中,结构体是用户根据实际问题而自行建立的一种数据类型,是由一系列相同或不同数据类型的数据构成的集合。在实际问题中,一个对象往…

安卓性能优化面试题 35-40

36. 简述Android卡顿优化 ?经过综合搜索结果和上面的讨论,对于Android卡顿优化的总结如下: 1. 卡顿问题的原因:卡顿问题可能由UI线程阻塞、CPU密集计算、内存泄漏等多种因素引起。 2. 卡顿检测与定位:采用线上线下监控方案、工具和日志分析,帮助发现和定位卡顿问题的具体…

node.js安装、npm镜像、vue cli脚手架安装

node.js、npm、vue/cli 文章目录 一、node.js安装二、包路径管理2.1 查看npm下载的默认路径2.2 更改路径2.3 配置环境变量2.4 安装cnmp(npm镜像) 三、安装脚手架创建Vue项目3.1 安装脚手架3.2 创建项目 一、node.js安装 官网上下载,然后直接一路下一步 …

2024年华为OD机试真题-贪心歌手-Java-OD统一考试(C卷)

题目描述: 一个歌手准备从A城去B城参加演出。 1) 按照合同,他必须在T天内赶到。 3) 歌手不能往回走。 4) 每两座城市之间需要的天数都可以提前获知。 5) 歌手在每座城市都可以在路边卖唱赚钱。经过调…

TC551001CPI

TC551001CPI/CFI/CFTI/CTRI/CSTI/CSRI是东芝(Toshiba)公司生产的一款131,072字8位的静态随机存取存储器(SRAM)。以下是对该芯片的详细解读: 描述 存储容量:1,048,576位,即128Kb(13…

k8s为什么删除了pod但是还是没删除掉的问题,deployment在影响

deployment 影响pod删除 一、问题所在二、解决问题 一、问题所在 执行:kubectl get pods --all-namespaces,获取dashboard相关的pod kubectl get pods --all-namespaces | grep dashboardkubectl delete pod dashboard-metrics-scraper-546d6779cb-4x6…

解密Oracle数据库引擎:揭开数据存储的神秘面纱(二)

本系列文章简介: 本系列文章旨在揭开Oracle数据库引擎的神秘面纱,帮助大家深入了解其内部机制和工作原理。我们将从基础概念入手,逐步深入到数据库引擎的核心组件和技术细节。我们将探讨Oracle数据库引擎的存储结构、索引机制、事务处理、并发…

Mysql设计规范

主键推荐默认用递增字符串大小合理设置数据库默认字段: 主键、创建人、创建时间、修改人、修改时间、逻辑删除(可选)、乐观锁(可选)冗余字段: 严禁冗余变更字段;例如: 创建人名称,租…

【Linux Day16 I/O复用】

I/O复用 用途:I/O 复用能同时监听多个文件描述符。 I/O 复用虽然能同时监听多个文件描述符,但它本身是阻塞的。并且当多个文件描述符同时就绪时,如果不采取额外的措施,程序就只能按顺序依处理其中的每一个文件描述符,…

如何使用“ubuntu移动文件、复制文件到其他文件夹“?

一、移动文件到其他文件夹命令 mv node_exporter-1.5.0.linux-amd64.tar.gz /usr/local/etc/prometheus 二、复制文件到其他文件夹命令 cp node_exporter-1.5.0.linux-amd64.tar.gz /home/master

java每日一题——幸运囚犯(合集遍历,查询数据练习)

前言: 合集基本学完了,做做题巩固下知识点。打好基础,daydayup! 题目如下: 目前有100名囚犯,每个囚犯的编号是1-200之间的随机数。现在要求依次随机生成100名囚犯的编号(要求这些囚犯的编号是不能重复的&a…

CSS字体图标

文章目录 1. 概念2. 阿里图标 iconfont2.1. 网址2.2. 使用方法2.3. 注意事项2.3.1. 原因 3. font-awesome 图标3.1. 网址3.2. 使用方法 1. 概念 本质就是一个字体,可以灵活修改它的样式,降低服务器请求的次数,同时相比图片更加清晰。 2. 阿…

expect语法

样式匹配 *号 1 2 expect "hi*" send "$expect_out(0,string) $expect_out(buffer)" 输入philosophic,输出为hilosophic philosophic,hi*匹配的是hilosophic 如果是hi*hi,则匹配的是hilosophi 如果是*hi*,则匹配的是philosop hi c\n ,而不是p hi losop…

全屏解决方案 (screenfull or vueuse)

ScreenFull 使用 (方案一) 参考文章朝阳 39 参考文章半夏_2021 安装 npm install screenfull --save (默认是 6.0,vue2 环境下会报错,所以需要安装 5.1.0) vue2 安装 npm i screenfull5.1.0 引入 import screenfull from “screenfull”; 调用 // 属性 screenfull.isFullscree…

【Web APIs】DOM获取元素

目录 1.Web API基本认识 2.获取DOM元素 3.设置/修改DOM元素内容 4.设置/修改DOM元素属性 4.1修改元素常用属性 4.2修改元素样式属性 4.3设置/修改表单属性 5.定时器-间歇函数 1.Web API基本认识 作用:就是使用js去操作html和浏览器 分类:DOM&am…

给wordpress添加自定义字段的分类筛选功能

要为WordPress添加自定义字段的筛选功能,你需要使用WordPress的查询参数(query parameters)和WP_Query类来构建自定义查询。以下是一个详细的示例代码,展示了如何添加自定义字段的筛选功能。 首先,你需要在你的主题或插件的functions.php文件…

windows访问远程服务器上容器的几种直接方式

远程服务器 host上有一个docker container,如何通过 client 直接登陆 container 呢? container 使用 host 的网络,即使用了 --networkhost先配置 container的 ssdh(/etc/ssh/sshd_config),相关参数设置 po…

经典过河问题

Safe Passage 题目链接 首先我们想,应该让最快与次快的先过河,然后让他俩来回的带其他人过河 两种考虑方式其实差不多, 一:以右岸为基准 这时我们想,当最快与次快的过河后,我们由两种选择: …

更高效的反射调用方式被我找到了!

背景 在使用Java进行开发时,我们会不可避免的使用到大量的反射操作,比如Spring Boot会在接收到HTTP请求时,利用反射Controller调用接口中的对应方法,或是Jackson框架使用反射来解析json中的数据给对应字段进行赋值,我…