128陷阱(超详细)

        int x = 128;int y = 128;int n = 127;int m= 127;Integer d = Integer.valueOf(x);Integer g = Integer.valueOf(y);Integer z = Integer.valueOf(n);Integer v = Integer.valueOf(m);System.out.println(d == g);System.out.println(z == v);

思考一下他的结果是什么?

为什么 d == g的结果是true

z == v的结果是false?

这里的原因咱们还是需要到valueOf方法的源码里去看

这里可以清晰的看到 当传入的参数i在一定范围时 他是直接从一个名为cache的数组中取出参数在cache数组中对应元素的地址 传回去。如果超出这个范围就直接new一个新的对象将这个新对象的地址传回去。

我们点击进入cache数组的代码中可以发现,cache数组的取值范围在-128~+127之间,这也就解释了为什么两个值为127的Ingeter对象利用==进行比较返回的是true,而两个值为128的返回的是false。

这里需要注意的是如果你使用equals方法进行比较,那么他就是直接对两个对象的值进行比较,会返回true(两个对象的地址是否相同没有影响) 。

还有一点就是如果你是通过new生成的对象你对他们的值使用==进行比较他们返回的一定是false因为new是生成一个新的对象,他们不可能指向同个对象,地址也不会相同,也不会存在128陷阱。

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

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

相关文章

快速搭建发卡独立站(完全免费)

本文介绍如何使用开源项目,零成本,无需服务器的方式搭建一套自己的数字商品/发卡独立站,不需要任何开发能力,即便是小白用户也能搭建。 感兴趣可直接查看开源项目地址👉 https://github.com/iDataRiver/theme-basic …

JavaScript基础笔记

前言 在JavaScript诞生的前几年,有人说: JavaScript是一门四不像的语言;JavaScript是一门没有规范的语言;JavaScript是一门兼容糟糕的语言;JavaScript是一门不精准的语言;JavaScript是一个半成品语言;JavaScript是一门糟糕的语言;JavaScript只是一个玩具胶水语言;…

基于java+ssm+jsp实现的网上购物系统(文末源码+lw+ppt)23-45

1 摘 要 本文首先实现了网上购物系统设计与实现管理技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系…

掌上教务系统-计算机毕业设计源码84604

摘要 在数字化教育日益成为主流的今天,教务管理系统的智能化和便捷性显得尤为重要。为满足学校、教师、学生及家长对教务管理的高效需求,我们基于Spring Boot框架设计并实现了一款掌上教务系统。该系统不仅具备课程分类管理功能,使各类课程信…

Node.js介绍 , 安装与使用

1.Node.js 1 什么是Node.js 官网:https://nodejs.org/zh-cn/ 中文学习网:http://nodejs.cn/learn1.Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 2.前端的底层 html…

架构面试-分布式存储系统edits_log分段加锁与锁优化

文章目录 锁优化策略标志位修改等可见性场景优先使用volatile1. 标志位的修改2. 单例模式的双重检查锁定(DCL)3. 原子状态的更新注意事项 数值递增场景优先使用Atomic原子类1. AtomicInteger 和 AtomicLong2. 使用示例3. 性能优势4. 其他原子类注意事项 …

Java-Redis-Clickhouse-Jenkins-MybatisPlus-Zookeeper-vscode-Docker

文章目录 Clickhouse基础实操windows docker desktop 下载clickhousespringboot项目配置clickhouse Redis谈下你对Redis的了解?Redis一般都有哪些使用的场景?Redis有哪些常见的功能?Redis支持的数据类型有哪些?Redis为什么这么快…

《Nature》文章:ChatGPT帮助我学术写作的三种方式

图片翻译 ** 文章内容** 忏悔时间:我使用生成式人工智能(AI)。尽管在学术界关于聊天机器人是积极力量还是消极力量的争论不休,但我几乎每天都使用这些工具来完善我所写论文中的措辞,并寻求对我被要求评估的工作进行替…

人脸检测(Python)

目录 环境: 初始化摄像头: 初始化FaceDetector对象: 获取摄像头帧: 获取数据: 绘制数据: 显示图像: 完整代码: 环境: cvzone库:cvzone是一个基于…

力扣 225题 用队列实现栈 记录

题目描述 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素…

mysql 表优化

1、检查表空间碎片率的2种方法: 方法一、空间碎片率 frag_pct SELECT table_schema, table_name, concat(round(data_length/1024/1024, 2), MB) as data_length_MB, concat(round(data_free/1024/1024, 2), MB) as data_free_MB,CONCAT(ROUND((data_free / data…

视频翻译英文的软件有哪些?打破语言障碍就用这5个

打算趁着暑假假期悄悄努力惊艳所有人的小伙伴在哪呢~ 相信不少朋友自学都会首选在家看网课,不过有时候面对全英的外语课程,难免总会听得一头雾水~ 但其实这个问题很好解决!码好以下这5款视频翻译工具,语言障碍的问题也就都迎刃而…

数论知识(取模运算)

若 a m o d k x a mod kx amodkx,则满足 a m o d ( 2 ∗ k ) x a mo d(2*k)x amod(2∗k)x,或者 a m o d ( 2 k ) x k a mod (2k)xk amod(2k)xk。

数据中台设计书及建设指南(中台及大数据解决技术方案)

1. 中台概念 2. 推动企业组织模式演进 3. 建设方法 4 .中台内容 5. 数据安全体系 中台内容围绕数据中台建设评估、整体框架、数据采集,结构化、半结构化、非结构化的数据采集,数据计算能力、存储计算引擎、数据架构、数据挖掘、各种不同数据层建设、模型…

Redis官方可视化管理工具

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl RedisInsight是一个Redis可视化工具,提供设计、开发和优化 Redis 应用程序的功能。RedisInsight分为免费的社区版和一个付费的企业版,免费版具有基本…

RPA影刀 | 循环 + 嵌套循环 + 循环中的continue和break

一、循环 循环的构成 重复在做的事(不变的):循环体每次操作的对象(变化的):循环项 二、ForEach列表循环 三、循环相似元素 四、For次数循环 五、嵌套循环 测试目标:遍历所有页面&#xff0…

蓝牙资讯|三星新智能戒指专利曝光,将搭载屏幕显示心率

科技媒体 91Mobile 挖掘美国专利数据库,发现三星获批一项新的设计专利,展示了全新的智能戒指设计方案,未来可能以 Galaxy Ring 2 的名义发布。 根据专利分享的外观设计,采用了有别于 Galaxy Ring 的全圆环设计,专利中智…

如何确保AES加密过程中的数据安全性

在AES加密过程中,确保数据的安全性是至关重要的。以下是一些关键步骤和策略,以确保AES加密的数据安全性: 1. 使用安全的密钥管理 密钥生成:确保密钥是随机生成的,并且具有足够的长度(如128位、192位或256…

YOLOv5+DecoupleHead解耦头(YOLOx)

一、解耦头原理 在目标检测中,分类任务和回归任务之间的冲突是一个众所周知的问题。因此,用于分类和定位的解耦头被广泛应用于大多数一级和二级探测器。但是,由于YOLO系列的主干和特征金字塔(如FPN, PAN)不断演化,它们的检测头仍然是耦合的。 从下表可以看出,头耦合时端…

深入探索Python库的奇妙世界:赋能编程的无限可能

在编程的浩瀚宇宙中,Python以其简洁的语法、强大的功能和广泛的应用领域,成为了众多开发者心中的璀璨明星。而Python之所以能够如此耀眼,很大程度上得益于其背后庞大的库生态系统。这些库,如同一块块精心雕琢的积木,让…