正如我的标题所示,这是一个理论问题。我想知道java是否将字符串定义为以null结尾。
最佳答案
I'd like to know that if java defines string as null terminated.
没有。字符串被定义为 char
值的固定长度序列。所有可能的 char 值(从 0 到 65535)都可以在字符串中使用。没有“可区分”值表示字符串以 1 结尾。
So how they track string ending? Using length?
是的。 String
对象有一个私有(private)的 length
字段(在我检查过的所有实现中......)。
如果您想了解更多有关 Java 字符串是如何实现的信息,可以在线获取各个版本的源代码。 Google 搜索“java.lang.String 源”。
<小时/>1 - 如前所述,JLS 或 String 的 javadoc 都没有明确规定 String
实现不能使用 NUL 终止。然而,事实上,包括 NUL 在内的所有字符在 String
中都很重要,这意味着 NUL 终止并不实用。
关于java - java 是否将字符串定义为以 null 结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62367698/