java中的字符串创建

sad*_*lam 2 java string

在java中,可以使用new运算符或使用+和+ =创建String.那么,所有这些字符串创建技术是否检查字符串池中是否已存在该字符串.如果他们dint那么String创建技术将检查池.

Col*_*ert 5

不,他们没有.

简单的例子:

    String s = new String("hell");
    String hello = "hello";
    s += 'o';
    System.out.println(hello == hello.intern()); //True
    System.out.println(s == s.intern());         //False
    System.out.println(s == hello);              //False
    System.out.println(s.intern() == hello);     //True
    //To sum up : s != s.intern() == hello.intern() == hello
Run Code Online (Sandbox Code Playgroud)

这个代码在ideone上

这里新版"s"不是"你好"的内部版本

如果您想拥有特定字符串的池版本,可以使用该intern()方法(就像我上面所做的那样).这样你肯定会有相同的参考.


资源: