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陷阱。
相关文章:
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); 思考一下他的结果是什么? 为什么…...
STM32自己从零开始实操08:STM32主控原理图
由于老师使用的各引脚分门别类的单片机原理图我没有找到,我使用是引脚按顺序摆放的,不方便一个模块一个模块截图展示,所以这部分使用老师的原理图。 一、电源 1.1电源的介绍 1.1.1数字电源和地(VDD和VSS) 数字电源…...
Ubuntu20.04配置TurtleBot3 Waffle Pi远程控制
这里写目录标题 0. 机器人配置1. Ubuntu20.04配置TurtleBot3 Waffle Pi远程控制1.1 TurtleBot3 Waffle Pi端配置1.2 PC端配置1.2.1 安装turtlebot3的环境配置1.2.2 创建项目并安装Turtlebot31.2.3 配置环境变量 1.3 PC端与TurtleBot3进行通信1.3.1 PC端与机器人端互PING和SSH连…...
SaaS产品和独立部署型产品有什么区别,该怎么选择?
随着云计算和软件服务的多样化,产品形式主要划分SaaS型(开通即用)和独立部署(完整交付)两种模式,那么SaaS产品和独立部署产品有哪些区别,我们在选择产品的时候应该如何去抉择?本文我…...
【Linux】压缩命令——gzip,bzip2,xz
1.压缩文件的用途与技术 你是否有过文件太大,导致无法以正常的E-mail方式发送?又或学校、厂商要求使用CD或DVD来做数据归档之用,但是你的单一文件却都比这些传统的一次性存储媒介还要大,那怎么分成多块来刻录?还有&am…...
【Java13】包
“包”这个机制,类似于分组。主要作用是区分不同组内的同名类。例如,高三三班有一个“王五”,高二八班也有一个“王五”。高三三班和高三八班就是两个不同的包。 Java中的包(package)机制主要提供了类的多层命名空间&…...
从零到一:Python自动化测试的详细指南!
引言: Python是一种功能强大且易于学习和使用的编程语言,它非常适合用于自动化测试。本文将从零开始,通过详细的步骤和规范,介绍如何在Python中实施高质量的自动化测试。我们将探讨测试策略的制定、测试框架的选择、测试用例的编…...
iOS中多个tableView 嵌套滚动特性探索
嵌套滚动的机制 目前的结构是这样的,整个页面是一个大的tableView, Cell 是整个页面的大小,cell 中嵌套了一个tableView 通过测试我们发现滚动的时候,系统的机制是这样的, 我们滑动内部小的tableView, 开始滑动的时候,…...
TCP/IP模型和OSI模型的区别
OSI模型, 是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,将计算机网络通信划分为七个不同的层级,每个层级都负责特定的功能。每个层级都构建在其下方的层级之上,并为上方的层级提供…...
(九)绘制彩色三角形
前面的学习中并未涉及到颜色,现在打算写一个例子,在顶点着色器和片元着色器中加入颜色,绘制有颜色的三角形。 #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <iostream>void …...
短信群发平台适用于哪些行业?
短信群发平台作为一种高效、快速且成本相对较低的通信方式,适用于多个行业。以下是一些主要适用行业的概述: 1. 零售与电商行业 应用场景:零售和电商企业可以利用短信群发进行新品推广、促销信息发布、订单状态更新、物流跟踪通知等。 2. 金…...
1. 倍数
倍数 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 请问在 11 到 20202020 中,有多少个数既是 44 的整数倍,又是 66 的整数倍。 运行限制 最大运行时间:1s最大运行内存: 12…...
C#常用关键字举例
关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 字符作为前缀。 class: public class MyClass {// Class definition }interface: public interface IMyInterfac…...
stm32——外部中断EXTI
上回书说到定时器的级联,今天来谈谈外部中断EXTI。我使用的是STM32F103C8T6的学习板。仅供大家参考。 什么是中断呢?中断是指计算机在执行程序的过程中,当出现某些异常情况或特殊事件(例如外部设备请求、定时时间到达、程序错误等…...
Solidity:变量数据存储和作用域 storage/memory/calldata
Solidity中的引用类型 引用类型(Reference Type):包括数组(array)和结构体(struct),由于这类变量比较复杂,占用存储空间大,我们在使用时必须要声明数据存储的位置。 数据位置 …...
ElementUI中的el-table解决宽度问题 - 根据内容自动撑开
在使用element-ui中,会发现表格组件el-table在未指定宽度情况下,会自动计算并给表格宽度赋值。但实际开发中,有时需要根据内容实际长度自动撑开显示,由内容的多少而决定表格的宽度,而不是默认宽度为100%。在默认情况下…...
react apollo hooks
1、创建ApolloProvider来包装整个程序 <ApolloProvider client{client}><App /> <ApolloProvider> 2、useQuery查询 工作方式usequery将返回一个数组 const {要返回的对象} useQuery(传入参数) 实例 const query gqlquery name {whatever {field}} e…...
Android 10.0 SystemUI启动流程
1、手机开机后,Android系统首先会创建一个Zygote(核心进程)。 2、由Zygote启动SystemServer。 3、SystemServer会启动系统运行所需的众多核心服务和普通服务、以及一些应用及数据。例如:SystemUI 启动就是从 SystemServer 里启动的…...
洛谷 P1032 [NOIP2002 提高组] 字串变换
P1032 [NOIP2002 提高组] 字串变换 - 洛谷 | 计算机科学教育新生态 题目来源 洛谷 题目内容 [NOIP2002 提高组] 字串变换 题目背景 本题不保证存在靠谱的多项式复杂度的做法。测试数据非常的水,各种做法都可以通过,不代表算法正确。因此本题题目和…...
网络资源模板--Android Studio 外卖点餐App
目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 原创外卖点餐:基于Android studio 实现外卖(点)订餐系统 非原创奶茶点餐:网络资源模板--基于 Android Studio 实现的奶茶点餐App报告 一、项目演示 网络资源模板--基于Android …...
抖音批量下载工具:智能反爬与分布式任务调度的技术突破
抖音批量下载工具:智能反爬与分布式任务调度的技术突破 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...
别再手动记数据了!组态王Kingview 7.5 SP6搭配Access数据库,实现工业数据自动存储与查询
工业数据自动化管理实战:组态王与Access的高效联动方案 在工业现场,数据采集与记录是保障生产稳定运行的基础环节。传统的手工记录方式不仅效率低下,还容易因人为因素导致数据错漏。我曾在一家化工厂亲眼目睹操作员因记录笔误导致整批生产参数…...
Claude Code教程(四)| Codex 配置(插件安装)
Claude Code教程(四)| Codex 配置(插件安装)一、核心定位(一句话看懂)二、前置准备(必做)2.1 核心环境要求(极简)2.2 关键说明(重要)三…...
微信聊天记录永久保存终极指南:如何让珍贵对话永不消失
微信聊天记录永久保存终极指南:如何让珍贵对话永不消失 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…...
MozJPEG终极指南:如何用开源工具将JPEG压缩效率提升30%以上
MozJPEG终极指南:如何用开源工具将JPEG压缩效率提升30%以上 【免费下载链接】mozjpeg Improved JPEG encoder. 项目地址: https://gitcode.com/gh_mirrors/mo/mozjpeg 在当今图像密集的互联网时代,JPEG格式仍然是网页图片的主流选择,但…...
microeco工具SpiecEasi网络分析功能的高效使用
microeco工具SpiecEasi网络分析功能的高效使用 【免费下载链接】microeco An R package for data analysis in microbial community ecology 项目地址: https://gitcode.com/gh_mirrors/mi/microeco microeco是一个用于微生物群落生态学数据分析的R语言工具包࿰…...
新手友好:在快马平台上通过实践快速掌握trea核心概念
作为一个刚接触trea技术的新手,我最近在InsCode(快马)平台上找到了特别适合入门的学习方式。这个平台最让我惊喜的是,不需要从零开始搭建环境,就能直接动手实践trea的核心概念。 理解trea的基本原理 刚开始接触trea时,最困惑的就…...
Anthropic员工失误导致Claude Code源代码泄露
事件概述:npm源映射文件暴露专有代码Anthropic公司一名员工在npm公开注册账户发布的AI编程工具Claude Code版本中意外包含源映射(source map)文件,导致该工具的完整专有源代码暴露。AI专家指出,这种失误存在重大安全风…...
面试复盘(Debrief)的艺术:挂了面试不可怕,如何通过感谢信获取真实Feedback并为下次“埋伏笔”?
在2026年竞争极其激烈的北美科技求职市场中,即使是背景最优秀的候选人,也必然会经历面试失败。在工业界的招聘漏斗中,由于技术栈匹配度、团队预算(Headcount)变动或单纯的竞争者过强,收到拒信(R…...
Python 3.13.7(发布于 2025 年 8 月 14 日)在 Windows 平台上的官方下载选项列表
Python 3.13.7(发布于 2025 年 8 月 14 日)在 Windows 平台上的官方下载选项列表,包含多种架构(x64、x86/32-bit、ARM64)和两种分发形式: Windows installer:标准图形化安装程序(含…...
