字符串是一个对象。为什么可以像原始类型一样初始化它:String str =“my string”;我期待通过使用构造函数来看初始化:new String(“my string”);作为原始类型的Java字符串初始化
-2
A
回答
2
这只是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
0
你可以去javadocs:
除非需要的原明确的复制,使用此构造是不必要的,因为字符串是不可改变的。
相关问题
- 1. 矢量和原始类型初始化
- 2. 初始化“的字符串”
- 3. 使用字符串作为类名动态初始化类
- 4. 字符串初始化
- 5. 字符串初始化
- 6. Android字符串初始化
- 7. 不能调用类型 '双' 初始化与类型 '(字符串?)'
- 8. 初始化std :: map中的原始类型的值是否已初始化?
- 9. 原始类与包装类初始化
- 10. 初始化泛型类作为变量
- 11. 字符串不断初始化为空
- 12. 为什么字符串需要用初始值初始化?
- 13. 执行特殊类型的字符串初始化的用C
- 14. 初始化字符*
- 15. 如何使`new []`初始化原始类型的数组?
- 16. 在.net中按名称字符串初始化类型
- 17. java中的初始化初始化
- 18. 初始化字符串为空与空字符串
- 19. 初始化ObjectC中的空字符串?
- 20. 的C#初始化字符串数组
- 21. 初始化字符*类型为const char的表达
- 22. 值不能用于初始化类型为“字符”的实体
- 23. Python的初始化字符串作为变量
- 24. 作为一个字符串的二维数组。初始化
- 25. 将字符串转换为未知的原始类型
- 26. Java类初始化难题
- 27. 重新初始化Java类
- 28. 未初始化的字符
- 29. 无法初始化类型
- 30. 初始化基本类型
[This](http://stackoverflow.com/questions/8046045/java-string-literal-pool-and-string-object)也可能有用。 –