String a ="a"; String b ="b"; String c = a+b; System.out.println("ab"==c);

为啥是false 难道c那步new了新对象内容是“ab”?
2024年11月20日 16:41
有4个网友回答
网友(1):

“ab”是新的匿名对象,所以返回的是false。java中==比较的是变量的地址,就好像C中的指针,指针地址一样就返回true的,你这是两个不同的String对象,肯定地址不同了。如果要比较内容就用equals方法。

网友(2):


而且比较时,直接写的"ab"也会被生成个String对象,这样就是两个不同对象

网友(3):

== 比较的是地址值,两个不同的对象地址当然不同, 如果只是想比较大小的话用equals进行比较

网友(4):

String a ="a"; String b ="b"; String c = a+b;
System.out.println(c); //结果是什么?
java中字符串比较不能用==,要用equals