为什么在Java中“ 1000 == 1000”为假,并且“ 100 == 100”是真的?

来自:Codeceo.com的翻译链接:http://www.codeceo.com/article/why-java-1000-100.html英文原件:https://dzone.com/articles/why-1000-1000-returns -false-but-100-100-returns-tr为什么在Java中“ 1000 == 1000”为假,并且“ 100 == 100”是真的?这是一个有趣的讨论话题。如果运行以下代码:整数a = 1000,b = 1000; System.out.println(a == b); // 1整数c = 100,d = 100; System.out.println(c == d); // 2您将得到false true。
基础知识:我们知道,如果两个引用指向同一个对象,请使用==表示它们相等。如果两个引用指向不同的对象,则即使它们的内容相同,也请使用==表示它们不相等。
因此,后面的陈述也应该是错误的。这是有趣的地方。
如果查看Integer.java类,您会发现有一个内部私有类IntegerCache.java,它缓存-128到127之间的所有整数对象。所以,所有小整数都在内部缓存,然后当我们声明类似Integer c = 100;之类的东西时,它实际上在内部执行的操作是:Integer i = Integer.valueOf(100);现在,如果我们看一下valueOf()方法,我们可以看到公共静态Integer valueOf(int i){if(i> = IntegerCache.low& i return IntegerCache.cache [i +(-IntegerCache.low)]; return new Integer(i);如果值范围在-128到127之间,它将从缓存中返回该实例。
So ... Integer c = 100,d = 100;指向同一个对象。我们为什么要写System.out .println(c == d);现在您可能会问,为什么这里需要缓存?逻辑原因是在此范围内“小”整数的使用率更高因此,使用相同的基础对象很有价值,并且可以减少潜在的内存使用。
但是,您将通过反射API滥用此功能。运行以下代码,并享受其魅力public static void main(String [] args)抛出NoSuchFieldException,IllegalAccessException {Class cache = Integer.class.getDeclaredClasses()[0]; // 1字段myCache = cache.getDeclaredField(“ cache”)); // 2 my Cache.setAccessible(true); // 3 Integer [] newCache =(Integer [])myCache.get(cache); // 4 newCache [132] = newCache [133]; // 5 int a = 2; int b = a + a; System.out.printf(“%d +%D =%d”,a,a,b); // } - - -结尾 - - -。

公司: 深圳市捷比信实业有限公司

电话: 0755-29796190

邮箱: momo@jepsun.com

产品经理: 聂经理

QQ: 2215069954

地址: 深圳市宝安区翻身路富源大厦1栋7楼

微信二维码

更多资讯

获取最新公司新闻和行业资料。

  • double sum = 0.0; for(int i = 0; i < n; i++) { if(resistors[i] > 0) { sum += 1.0 / resistors[i]; 在C语言中计算并联电阻的总电阻是一个常见的应用问题,它涉及到基本的物理知识与编程技巧的结合。并联电路中的总电阻可以通过所有并联电阻倒数的和的倒数来计算。首先,我们需要定义一个函数来处理这一计算过程。例如...
  • 1安铅保险丝直径约0.5至0.8毫米 铅保险丝的直径与所需通过的最大电流有关。一般来说,用于1安培电流的铅保险丝直径大约在0.5毫米到0.8毫米之间,但具体尺寸还需参照实际产品的规格表或制造商提供的数据。因为不同制造商可能有略微不同的设计标准和材料...
  • 从0.6X0.3mm到0.8X0.8mm:深入对比两种Chip SMD封装规格 Chip SMD-0.6X0.3mm 与 0.8X0.8mm 封装性能对比在电子元器件选型中,Chip SMD-0.6X0.3mm 和 0.8X0.8mm 是两种极具代表性的超小型封装形式。它们虽同属表面贴装技术,但在尺寸、应用场景及制造难度上存在明显差异。1. 尺寸与物理特性对比 参...
  • 电阻精密度1%能代0.1%吗? 不能!其实,对于不是搞计量的不需要分的那么清楚,可以大体上认为高精密、高准确、低误差等是一个意思。但是,对于“精度”一词,可以分解成分解成三个要素:&nbsp;1 、温度系数:温度变化是电阻的大敌,温度系数一...
  • PT100热电阻温度与电阻值对照表(0°C基准0.385) 根据PT100热电阻的标准特性,其电阻值随温度变化而变化,通常基于0°C时电阻为100Ω作为参考。对于给定的温度系数α=0.385Ω/°C(这指的是每度变化的电阻增量),我们可以构建一个简化版的对照表来展示特定温度下对应的电阻值...
  • 贴片合金采样电阻2512 0.01R 1% 2W 加工定制否品牌TA-I/大毅型号RLP25FEER010种类合金性能耐高温材料合金制作工艺合金工艺外形平面片状允许偏差±1%温度系数50ppm/℃额定功率2(W)功率特性大功率频率特性中频产品性质高精度 合金检测电阻标称阻值0.01R货号21+是否跨...
  • 为什么说恒压源的电阻为0? 恒压源是指在一定条件下能够提供恒定电压的电源设备。在理想情况下,无论负载如何变化,恒压源都能保持输出电压不变。这一特性使得恒压源在电子电路设计中非常有用。理论上讲,如果我们将恒压源视为一个具有零内阻的...
  • 五向开关DC12(V)0.05(A):应用与技术参数 五向开关DC12(V)0.05(A)是一种电子元件,它在电路设计和设备控制中发挥着重要作用。这种开关通常用于需要控制多个方向或功能的应用场景,例如遥控器、游戏控制器或是小型电子设备的导航按钮等。五向开关能够提供上、...
  • 大毅合金电阻授权代理商RLP25FEER220 2512 1% 2W 0.22R 加工定制否品牌TA-I型号RLP25FEER220种类高精度合金电阻性能取样合金电阻材料合金制作工艺合金制程工艺外形贴片允许偏差1%温度系数50ppm-100ppm额定功率2(W)功率特性大功率频率特性中频产品性质耐高温 合金电阻货号21+是否跨境...
  • 贴片电阻的精密度有0.1%的吗 其实,对于不是搞计量的不需要分的那么清楚,可以大体上认为高精密、高准确、低误差等是一个意思。但是,对于“精度”一词,可以分解成分解成三个要素:&nbsp;1 、温度系数:温度变化是电阻的大敌,温度系数一般用ppm...
  • 为什么在零状态条件下,电容在t=0+时可视为短路? 在电路分析中,特别是在讨论暂态响应时,我们会遇到零状态条件下的电容。所谓零状态,是指初始时刻电容两端的电压为零。当考虑电路在施加输入信号的瞬间(即t=0+时),电容由于其存储电荷的能力,在这一时刻可以被视为...
  • 0.6V与1.24V参考电压组件在精密模拟电路中的应用对比 0.6V与1.24V参考电压组件的核心差异分析在现代模拟集成电路设计中,参考电压组件是确保系统精度和稳定性的关键元件。其中,0.6V和1.24V两种参考电压组件因其独特的性能参数,在低功耗、高精度应用场景中备受关注。1. 工作原...
  • SMD-1.6X0.8mm LED灯珠与Vishay 0.068μF电容在小型电子设备中的应用解析 引言随着电子设备向微型化、高性能化方向发展,SMD(Surface Mount Device)封装元件在电路设计中扮演着越来越重要的角色。其中,1.6×0.8mm尺寸的LED灯珠与Vishay品牌的0.068μF电容因其高集成度和稳定性,广泛应用于智能穿戴设备、便...
  • 如何根据系统需求选择合适的参考电压组件:0.6V vs 1.24V 从系统级设计视角看0.6V与1.24V参考电压组件的选型策略在嵌入式系统、传感器接口电路以及电源管理芯片设计中,参考电压组件的选择直接影响系统的可靠性与能效表现。本文将从多个维度深入剖析0.6V与1.24V参考电压组件的选型...
  • 从0.6X0.3mm到1.6X0.8mm:SMD芯片封装发展趋势与选型指南 前言在电子元器件不断向微型化、高性能演进的背景下,SMD(Surface Mount Device)芯片封装成为连接硬件创新与量产落地的关键环节。本文聚焦于两款极具代表性的封装规格——Chip SMD-0.6X0.3mm 与 Chip SMD-1.6X0.8mm,深入探讨其技术特征...
  • 如何正确选型与焊接SMD-1.6X0.8mm LED灯珠与0.068μF电容?实用指南 前言:小尺寸元器件的装配挑战在现代PCB设计中,1.6×0.8mm的SMD LED灯珠与0.068μF电容虽体积微小,但其性能关键。若选型不当或焊接失误,极易导致短路、虚焊或功能异常。本文将从选型标准、焊接工艺到测试方法进行全面指导。...
  • 电容变0意味着什么及其影响 电容变0通常指的是电容器的电容值变为0,这意味着电容器失去了其储存电荷的能力。在实际电路中,这种情况可能由多种原因引起,包括但不限于电容器损坏、老化或不当使用导致其内部介质击穿。当电容器失效时,它在电路中...
  • 铜的电阻温度系数约为0.004/°C 铜是一种常用的导电材料,因其良好的导电性能和相对较低的成本,在电气工程中被广泛应用。铜的电阻温度系数(temperature coefficient of resistance),是指在特定温度范围内,温度每变化1度时,其电阻值相对于基准温度(通常是2...
  • 电阻测出为0的原因及其意义 电阻测出来为0通常意味着几种可能性。首先,这可能表示电阻器已经短路或损坏,导致电流没有受到预期的阻碍而直接通过,此时电阻器无法正常发挥其功能。其次,如果是在电路中的某个点测量到电阻为0,那可能是两个连接点...
  • 0 在探讨电容器存储电能的计算方法时,我们通常会从基本的物理原理出发。首先,我们知道电容器是由两个导体(通常是金属板)组成的,这两个导体之间被一种绝缘材料(称为电介质)隔开。当电容器连接到电源上时,它会在...