==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.
是==坏?什么时候应该不应该使用它?有什么不同?
我试图理解在Java中==和equals与operator之间的区别.例如==将检查它是否是同一个对象,而equals将比较对象的值...那么为什么我们使用==来比较原始数据类型,如int.因为如果我有
int i =7; //and
int j = 6.
Run Code Online (Sandbox Code Playgroud)
它们不是同一个对象,也不是堆栈中的相同内存地址.或者==对于基元比较的行为有所不同.
根据我的理解,如果我有两个long或者int,==由于自动装箱,测试值相等的运算符有时不起作用.
我需要做些什么来确保==在处理原语时能够在每种可能的情况下工作?
我想知道"=="运算符如何处理原始值.我理解"=="检查两个引用是否引用堆上的同一个对象.但它如何在原始值的上下文中工作,它们是否存储在堆栈中?例如
int a = 5;
int b = 5;
我假设这些值不存储在内存中的相同位置,但是== b返回"true".
我的想法是,JVM将存储在堆栈中的所有值视为存储在内存中的一个位置,并且在"=="的情况下返回true.你能用更详细的方式向我解释一下这件事吗?
问候