Java 装箱拆箱原理 包装类型缓存池

news2024/11/18 9:46:59

JAVA中的基本数据类型

  • byte
  • short
  • int
  • long
  • float
  • double
  • boolean
  • char

为了让上述基本数据类型可以转为对象,Java在1.5推出了一系列包装类,基本类和包装类互相转换的过程,称为装箱和拆箱

缓存池

缓存池也叫常量池。它是事先存储一些常量数据用以提高性能节省空间的一种技术,大部分的包装类型都实现了缓存池。

创建包装类型时,如果基本类型的值处于缓存池范围中,则不会重新创建对象,而是复用缓存池中的已经创建好的对象;

比如我们将数值8装箱为两个Integer对象,然后一比较就会发现这两个Integer是同一个对象,即比较结果为true。

而当我们将数值128装箱为两个Integer对象,经过比较便会发现,这两个Integer不是同一个对象,即比较结果为false。

这是因为Integer类型默认缓存了[-128, 127]范围的值。只要是这个范围的值自动装箱,便会返回相同的对象,所以如果是包装类型,互相比较的话,不要用==判断,而要用equals()方法判断
在这里插入图片描述

自动装箱

装箱:包装类型 变量 = 包装对象.valueOf(数值);
在装箱过程中,valueOf() 方法会创建一个新的包装类对象,并将基本数据类型的值封装到这个对象中。

拆箱:基本数据类型 名称 = xxxValue();
在拆箱过程中,xxxValue() 方法会从包装类对象中提取出相应的基本数据类型值,并返回给调用者。

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

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

相关文章

reverse

b,a,0x7d65都能轻易的转成字符串,就是这个负数需要看汇编,在汇编层面是加了两个数实现的减法效果。 a[galf,saE{,er_y,3r0v,}e] for each in a:print(each[::-1],end) # flag{Easy_rev0r3e}

华为OD机试真题 Java 实现【路灯照明问题】【2022Q4 100分】,感谢fly晨发现这个问题,并提供更优质的算法

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路特别鸣谢:感谢fly晨发现这个问题,并提供更优质的算法。解题思路如下: 五、Java算法源码六、效果展示1、输入2、输出3、思路 专栏导读 本专栏收录于《华为OD机试(J…

【USRP X310】如何查找USRP X310的 LabVIEW 案例 Demo

环境 Windows 10LabVIEWUSRP 支持的硬件 USRP-2900USRP-2901USRP-2920USRP-2921USRP-2922USRP-2930USRP-2932USRP-2940 40 MHzUSRP-2940 120 MHzUSRP-2942 40 MHzUSRP-2942 120 MHzUSRP-2943 40 MHzUSRP-2943 120 MHzUSRP-2944USRP-2945USRP-2950 40 MHzUSRP-2950 120 MHzUS…

轻奢分销商城pc/h5小程序开源版开发

轻奢分销商城pc/h5小程序开源版开发 商城系统;包含小程序商城、H5商城、公众号商城、PC商城、App,支持秒杀、优惠券、积分、分销、会员等级。 功能列表: 用户注册和登录:用户可以通过手机号码或第三方登录方式注册和登录账号。…

RPM包详解以及如何制作RPM包

RPM包简介 RPM 全名 RedHat Package Managerment,一开始只是Red Hat Linux的软件包格式,它最初的名字为Red Hat软件包管理程序。从那以后,RPM逐渐称为许多其他Linux发行版所接受的一种软件包格式。Linux标准化规范将RPM作为其官方软件包格式…

gdb调试产生code文件以及遇到的“file format not recognized”问题解决

一、调试 core 文件的配置 1.1 开启core文件 —— ulimit 有时候,服务器程序运行一段时间后会突然崩溃,这并不是我们希望看到的,需要 解决这个问题。只要程序在崩溃的时候有 core 文件产生,就可以使用这个 core 文件 来定位崩溃…

数据结构(王道)——线性表的存储结构之双链表

双链表和单链表的对比 一、从无到有创建一个双链表及其基础操作 带头结点 的双链表 初始化 双链表的后插操作: 从后插可以拓展到按位序插入,和前插操作。 因为双链表的特性,如果按位序插入或者前插操作,只需要找到插入的位置的前…

传统企业的数据管理:如何高效管理分散的数据?

在数字时代,数据管理已经成为一个重要的议题。大多数企业已经意识到数据是他们业务运营的重要组成部分。然而,许多传统企业还在使用过时的数据管理模式,这些模式并不具备高效管理分散数据的能力。随着企业的膨胀和数据规模的逐渐增加&#xf…

AI工程师:未来时代的主流工程师

自从以ChatGPT为主的人工智能(AI)大模型层出不穷,越来越多人开始意识到AI的潜力,甚至预测“所有行业都将通过AI来进行重塑”,正是基于该原因,各国各企业如火如荼建设AI事业,作为把AI造出来的AI工…

配合LaTex使用的“工具”

先介绍两个工具,比如公式的书写等,会大大提高书写论文的速度。 第一个:Mathpix Snip(生成公式)。官网:https://mathpix.com 【先去官网注册一个账号(注册时遇到的问题见文章Mathpix上半部分)然后去安装该软…

Python 列表 pop()函数使用详解

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 pop函数使用详解 1、按照索引删除元素1.1、正数索引1.2、负数索引1.3、不指定索引…

docker k8s

Docker docker到底与一般的虚拟机有什么不同呢? 我们知道一般的linux系统即GNU/Linux系统包括两个部分,linux系统内核GNU提供的大量自由软件,而centos就是众多GNU/Linux系统中的一个。 虚拟机会在宿主机上虚拟出一个完整的操作系统与宿主机完…

vue+openlayers 点击地图查询geoserver发布的WMS/WMTS图层的信息[矢量(点、线、面)+栅格]

一、基本介绍 网络地图服务 (WMS) 、网络地图切片服务 (WMTS) ,根据用户的请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或者是SVG和WEB CGM等矢量形式)。 下面是常见的geoserver发布的图层格式,有矢量…

ODX(ISO22901)进阶——Intorduction to ODX

文章目录 前言一、Vehicle Diagnostic是什么?二、Diagnostic Data in ODX(诊断数据在ODX数据库)三、ODX企标概述(ODX Authoring Guidelines)总结前言 今天是2023年7月15日,距离2024年只剩下半年时间。伴随着各地疫情政策逐渐发开,三年的疫情终于迎来了不一样的变化。期…

AI绘画Stable Diffusion实战操作: 62个咒语调教-时尚杂志封面

今天来给大家分享,如何用sd简单的咒语输出好看的图片的教程,今天做的是时尚杂志专题,话不多说直入主题。 还不会StableDiffusion的基本操作,推荐看看这篇保姆级教程: AI绘画:Stable Diffusion 终极炼丹宝…

C++并发编程(1):基本概念、线程管控

学习视频与书籍 学习视频 c11并发与多线程视频课程 学习书籍 我本来打算去图书馆借《C新经典》的,偶然发现这本书,如获至宝 书挺新的,我看译者序是21年10月这本书挺贵的,后面写着139.80,大家还是去图书馆借吧作为基础…

Linux驱动之字符设备驱动框架与示例模板

目录 一、字符设备驱动简介 二、字符设备驱动开发步骤 1.确定设备号 2.定义 file_operations 结构体 3.实现操作函数 4.注册和注销字符设备 5.编译和加载模块 6.用户空间交互: 三、字符设备驱动示例模板 四、字符设备驱动开发总结 一、字符设备驱动简介 字…

未来Mac下载站怎么打不开了

重要公告: 未来软件园因业务需要现更换域名 原域名:Mac.orsoon.com 更为新域名:未来mac下载-Mac软件-mac软件下载-mac软件大全 程序已全面转移,请访问新域名

MySQL中的索引和事务 (数据库系列5)

目录 前言: 1.索引 1.1 索引的概念 1.2索引的作用 1.3索引的使用场景 1.4索引的使用 1.4.1查看索引 1.4.2创建索引 1.4.3删除索引 1.5索引背后的数据结构 1.5.1 B-树 1.5.2 B树 2.事务 2.1事务的概念 2.2数据库事务的四个特性 2.2.1原子性 2.2.2一…

城会玩,Selenium+Docker成功解决这一大难题

01、需求背景 日常测试中会遇到对web应用进行UI自动化的测试场景,一般常用的工具是使用Selenium,一套简单的UI自动化架构如下: 上图即为简单搭建的一套UI自动化测试架构,但 串行执行测试用例: 一台机器只能安装一个…