"ABC"和新字符串("ABC")之间有什么区别?

Sac*_*hin 0 java string difference

String str = "ABC"和之间有什么区别String str = new String("ABC")

Pao*_*gia 6

在Java中String是一个特殊的对象,允许您创建一个新的,String不必new String("ABC").不过String s = "ABC"String s = new String("ABC")不一样的操作.

从javadoc new String(String original):

初始化一个新创建的String对象,使其表示与参数相同的字符序列; [...]

除非需要显式的原始副本,否则不必使用此构造函数,因为字符串是不可变的.

换句话说,正在String s = new String("ABC")创建一个新实例String,同时String s = "ABC"重用(如果可用)String Constant Pool的实例.

字符串常量池

字符串常量池是String放置对象引用的集合.

String s = "prasad"仅在没有其他可用时才创建新引用.您可以通过使用==运算符轻松查看.

String s = "prasad";
String s2 = "prasad";

System.out.println(s == s2); // true
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

图片取自thejavageek.com.


new String("prasad")总是创建一个新的引用,换句话说s,s2从下面的示例将具有相同的值但不会是同一个对象.

String s = "prasad";
String s2 = new String("prasad");

System.out.println(s == s2); // false
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

图片取自thejavageek.com.


归档时间:

查看次数:

13061 次

最近记录:

8 年,3 月 前