java将字符串定义为null终止吗?

Dew*_*rld 10 java string null

正如我的标题所暗示的,这是一个理论问题.我想知道如果java将string定义为null终止.

Ste*_*n C 10

我想知道如果java将string定义为null终止.

不可以.字符串被定义为固定长度的char值序列.可以char在字符串中使用所有可能的值(从0到65535).没有"区分"值表示字符串结束.

那他们如何跟踪字符串结尾?使用长度?

是.一个String对象有一个私有length字段(在我已经检查的所有实现中......).

如果您想更多地了解Java字符串的实现方式,可以在线获取各种版本的源代码.Google为"java.lang.String source".


Jun*_*san 5

Java字符串不以C或C++中的空字符结尾.虽然java字符串在内部使用char数组,但是没有终止null.String类提供了一个名为length的方法来知道字符串中的字符数.

这是简单的代码及其调试器内容:

public static void main(String[] args) {
    String s = "Juned";
    System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)

调试器截图:

在此输入图像描述

  • Java是JLS,它不要求null终止,但也不会_disallow_.Java的一个_implementation_没有这样做的事实没有你想象的那么重要.我不会投票给你,但你可能想要区分Java规范和实现. (4认同)