【发布时间】:2016-12-21 17:10:27
【问题描述】:
我想知道“==”运算符如何处理原始值。我知道“==”检查两个引用是否指向堆上的同一个对象。 但是它如何在存储在堆栈中的原始值的上下文中工作? 例如
int a = 5;
int b = 5;
我假设这些值没有存储在内存中的同一个位置,但是 a == b 返回“真”。
我的假设是 JVM 将存储在堆栈中的所有值视为存储在内存中的一个位置,并且在“==”的情况下返回 true。 你能更详细地解释一下这件事吗?
问候
【问题讨论】:
-
你能更清楚你想知道什么吗?你的问题很模糊。
-
按值比较它们。
-
你把事情弄得太复杂了。
==只是比较值。比较地址或假装值存储在内存中的一个位置没有任何意义。
标签: java jvm heap-memory primitive-types stack-memory