"=="如何对原始类型起作用

ada*_*172 -1 java heap stack jvm primitive-types

我想知道"=="运算符如何处理原始值.我理解"=="检查两个引用是否引用堆上的同一个对象.但它如何在原始值的上下文中工作,它们是否存储在堆栈中?例如

int a = 5; int b = 5;

我假设这些值不存储在内存中的相同位置,但是== b返回"true".

我的想法是,JVM将存储在堆栈中的所有值视为存储在内存中的一个位置,并且在"=="的情况下返回true.你能用更详细的方式向我解释一下这件事吗?

问候

Kay*_*man 7

你的假设是错误的.比较基元时,没有内存地址在起作用.这是一个简单的指令来比较一个值是否等于另一个值,在字节码中实现作为比较(寄存器值)和条件跳转.