char[]数组跟String是共用一个常量嘛?

如图所示。arr指向的“ab”是在堆中?还是常量池中?

如果是常量池中,那s指向常量池中的“ab”,跟arr指向常量池中的“ab”是同一个“ab”吗?

img

  1. "ab", "a", "b" 都在堆中
  2. 不是同一个
    char[] s1={'j','a','v','a'};
    String s=new String(s1);
    System.out.println(s==s1.toString());//false

img

是同一个了,a,b都进了常量池

string引用不指向常亮池。

首先,char数组和常亮池没关系。 常量常量那都是fanil修饰才行。