我读到的有关字符串的内容是,当在 Java 中创建字符串对象时,它是不可变的。例如:
String s=new String();
s="abc";
s="xyz";
String s
是否不再指向 "abc"
?
还有一件事:s 的大小是多少;
就内存模型而言,String
对象是否类似于 C 中的 char*
指针?
最佳答案
不,Java String 不像 C 中的 char*。如果您正在寻找 java 中的模拟 char[] 是这样的。
String是一个包装了char数组并提供了很多功能的类。而且它是不可变的,即你不能改变它的内容。您只能创建另一个字符串。此外,String 是最终的,因此您不能将其子类化。
String 是特殊类。只有字符串支持运算符 (+)。所有其他类根本不支持运算符,甚至是原始包装器(Integer、Double 等)。代码“foobar”中字符串常量的存在会调用 java.lang.String 构造函数。
关于java - 字符串内存模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6736180/