自动装箱和拆箱

自动装箱(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语言中,结构体是用户根据实际问题而自行建立的一种数据类型,是由一系列相同或不同数据类型的数据构成的集合。在实际问题中,一个对象往…

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安装 官网上下载,然后直接一路下一步 …

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数据库引擎的存储结构、索引机制、事务处理、并发…

【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. 阿…

【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…

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

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

【Frida】10_用鼠标自动标记棋盘上的雷区(一键过关)

🛫 系列文章导航 【Frida】 00_简单介绍和使用 https://blog.csdn.net/kinghzking/article/details/123225580【Frida】 01_食用指南 https://blog.csdn.net/kinghzking/article/details/126849567【Frida】 03_初识frida-node https://blog.csdn.net/kinghzking/ar…

AI程序员诞生:对程序员的影响与未来展望

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 方向一:AI程序员的优势分析 方向二:AI程序员局限性 方向三:对程序员职业的影响 方向四&…

【吊打面试官系列】Redis篇 - Redis 的回收策略(淘汰策略)?

大家好,我是锋哥。今天分享关于 Redis 的回收策略(淘汰策略)面试题,希望对大家有帮助; volatile-lru :从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰…

高通8255芯片首次烧写方法

高通8255芯片首次烧写需要进行分区烧写,方法如下: 目录 一:QFIL安装 二:关于QFIL详细文档 三:简要分区烧写方法 1烧写 meta build 2 然后重启一下机器 3 烧写 flat build 四:正常烧写程序 一&#…

成为高效Java工程师的干货笔记

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流,摸鱼划水的小伙伴,请点击【全栈技术交流群】 作为一名Java工程师&…

好用电脑桌面便签是什么?电脑好用便签软件推荐

面对电脑屏幕,我常常感到一种无形的压力。繁杂的工作、琐碎的事务,仿佛都在这个小小的屏幕里与我争夺注意力。每当这时,我就特别需要一个能随时记录我重要事项的工具,让我能在忙碌中保持清醒的头脑。 有一天,我发现了…

产品|快!精!强!点点田企业版功能大升级

在诸如农业补贴、农情监测以及种植监管等场景中,农业遥感数据获取门槛高、行业客户软件开发经验不足等痛点一直存在。 针对这一挑战,珈和科技开发了点点田企业版产品,提供农业遥感数据服务,以API交付的方式降低数据获取门槛&…

外包干了1个月,技术明显进步。。。

我是一名大专生,自19年通过校招进入湖南某软件公司以来,便扎根于功能测试岗位,一晃便是近四年的光阴。今年8月,我如梦初醒,意识到长时间待在舒适的环境中,已让我变得不思进取,技术停滞不前。更令…

Uibot (RPA设计软件)财务会计Web应用自动化(批量开票机器人)

Uibot (RPA设计软件)Mage AI智能识别(发票识别)———机器人的小项目友友们可以参考小北的课前材料五博客~ (本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~) 紧接着小北的前两篇博客,友友们我们…