如下所示的示例代码
public class myClass{
String s = "Hello";
public static void printS(){
System.out.println(s);
}
}
字符串"Hello"
存储在string pool
中。当我调用printS()
时。 java如何知道字符串o
之后字符串已经结束?
C / C ++使用\0
执行此操作,但是在java中没有存储特殊字符来指示字符串的终止。 java存储字符串的长度吗?这似乎不太可能,因为那样使str.length()
成为一个函数是有意义的。它可以是array.length
编辑:我不想知道字符串池在Java中是如何工作的。问题是关于java如何知道字符串的结尾。
答案 0 :(得分:3)
Java存储字符串的长度。因此,它不需要像\0
这样的终止字符。
Java的str.length()
方法实际上只是访问字符串中数组的length
字段。在Java中,通常认为将值公开为方法,而不是直接允许访问变量。