Sil*_*ior 2 java string literals
为什么java.lang.String存在两种创作方式的唯一类:
1)使用" new"关键字的正常方式.
String s = new String("abc");
Run Code Online (Sandbox Code Playgroud)
2)with Stringliteral(仅适用于String课程)
String s = "abc";
Run Code Online (Sandbox Code Playgroud)
那么为什么有String任何其他类的文字和文字?
不考虑自动装箱(不计算IMO - 文字是原始类型而不是类;只是隐式转换到包装类),String(String)构造函数实际上是有用的.它需要一个字符数据的副本,这意味着如果原始字符串很小但具有大的支持char[],则新字符串与其无关.
例如,如果您从文件中读取短行,这可能很重要.
至于为什么有字符串文字:因为它们很有用.你还会有什么?你想强迫开发者使用:
String x = new String(new char[] { 'h', 'e', 'l', 'l', 'o' });
Run Code Online (Sandbox Code Playgroud)
并且同时没有实习?
你想要一个文字的其他课程是什么?可以说地图和列表的文字是有用的 - 我不记得他们是否会使用Java 7.您可以将数组初始值设定项视为"有点像文字",因为它是对象初始化的简写.