作为原始类型的Java字符串初始化
问题描述:
字符串是一个对象。为什么可以像原始类型一样初始化它:String str =“my string”;我期待通过使用构造函数来看初始化:new String(“my string”);作为原始类型的Java字符串初始化
答
这只是java提供的简化。另一种选择是非常难看的。您可选择的解决方案有一个简单的逻辑错误:
new String("my string");
只是藏汉使用字符串字面简单地"my string"
。该真正选择将使用byte[]
(不推荐),这看起来更糟糕是
new String(new char[]{'m','y',' ',...,'n','g'});
或者只是相同的例子。
+0
谢谢,所以基本上编译器将“我的字符串”转换为char序列给我们? –
+0
@WildGoat不需要转换,'String'字面上是Java中的一个'CharSequence',因为这是'String'类实现的接口之一。 – azurefrog
[This](http://*.com/questions/8046045/java-string-literal-pool-and-string-object)也可能有用。 –