String

 String  a="abc";  会在常量池中开辟一个空间,保存"abc"
  String  b=new String("abc");
  01.常量池没有abc,首先会在常量池中开辟一个空间,保存"abc"
  02.再去堆中开辟空间,保存"abc"
  03.b指向堆中的abc
  a==b   false
  String  c=new String("abc");
  b==c   false

  intern():从常量池中取地址
  a==b.intern()   true
  b.intern()==c.intern()    true

=================================================================
String  a="abc";
String  b="a";
String  c="bc";
a,b,c三者都是变量!!!!

a==(b+c)  false

String  a="abc";
final String  b="a";
final String  c="bc";
b,c两者都是常量!!!!  不允许被改变

a==(b+c)  true

原文地址:https://www.cnblogs.com/fl72/p/9293252.html