[英]How does the Java String class work internally?
在我的编程类中,我们正在创建一个类似于Java String类的类。 现在,我们创建一个像这样的新对象:
MyString string = new MyString("Hello World");
一切都很好,但是在Java中,您可以创建一个新的String对象,如下所示:
String string = "Hello World";
有办法模仿吗? 这不是人们所说的不可变的,您可以在创建对象后更改它并添加到该对象上吗?
编辑:显然我需要回到英语课。 “我”一词的不变是“不是”……糟糕,我的意思是可变的。
在Java中,字符串文字是 String
类的实例。 因此,在第二个示例中,没有任何转换发生。 它与不变性无关(但是如果Strings可变,您会遇到问题)。
编辑:要查看String
类如何在内部工作,请查看其源代码 (OpenJDK)。
另一个例子
Integer Int = 5;
要么
Integer Int = new Integer (5);
两者都很好。
以下内容也适用。
Integer Int;
int i = 5;
Int = i ;
我认为这是仅针对少数类型的特殊行为。 可能等于运算符被重载了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.