示例
String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
在str1 和str2执行的时候会在常量池中查看有没有abc的常量,如果有那么就将值赋给str1、str2。
而str3是在执行的时候在堆中直接新建abc的字符串再赋给str3;
equals的作用
对于str1、str2时equals是将其通过toCharArray 转换字符数组最后再通过==来比较str1和str2的值是否相同,
str3是将对象内存储的值取出来在进行比较
equals是比较对象内存储的值
==的作用
str1==srt2会显示true因为他们调用的地址值都是常量池中abc的地址值,str1或str2 == str3会显示false因为str3的地址值与常量池中abc的地址值不一样
== 是用来判定地址值是否一样