赋值运算符是否消耗Java中的内存?

我有两个字符串如下:

“是”,“不”.

现在,我想以两种方式比较这些字符串:

>直接:
示例:“yes”.equals(“no”)
>通过将字符串分配给某个变量:
例:

String string1 = "yes";
String string2 ="no";
string1.equals(string2);

在这两种情况下,是否有任何内存或性能差异?

存在一个非常小的差异(实际上可以忽略不计,我们在这里讨论微优化),因为字符串应该存储在一个局部变量中,该变量在相应方法的堆栈帧上占用额外的内存.而常量实际上存储在常量池中并共享.根据调用次数可能对JVM进行优化,它不会产生任何影响.

请注意,如果变量是最终的或有效的最终(仅分配一次),字节码将是相同的,因为在这种情况下,它们被视为常量.

相关文章
相关标签/搜索