java中字符串引用相同还是内容相同?

常量池干嘛的?*字符串如果是常量相加,是先加,然后在常量池找,如果有就直接返回,否则,就创建。请问java中字符串s4==s5是指字符串的引用相同还是内容相同,他和堆内存栈内存有啥联系区别呢Java中所有局部变量和对象的引用都是存储在栈内存中的,inta1;它是局部变量肯定是在栈内存,但是它与常量池没有关系;常量池是堆内存中的一部分,专门用来存储字符串常量;所以Stringaabc中,引用a是存储在栈内存的,指向常量池中的abc;但是如果是StringanewString(abc);就又不一样了,对于通过构造函数得到的abc字符串对象,引用a还是在栈内存,但是abc不会存到字符串常量池中,而是在常量池之外的其他堆内存中再生成一个abc,由于这个对象与原先常量池中的abc对象是equal关系,它们之间会建立起一种联系;java中可以用==来比较两个字符串是否相等吗先说结论,不能。

1、java字符串变量赋值例如Stringa=