String 类的 length 方法在 Java 中究竟是如何工作的?
它是线性时间的for循环还是有一个字段跟踪长度以使其恒定时间?
String 类的 length 方法在 Java 中究竟是如何工作的?
它是线性时间的for循环还是有一个字段跟踪长度以使其恒定时间?
a 的长度String
保存为一个字段,如下所示:http: //grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java#String .长度%28%29
有一个字段来存储长度。它不需要“跟踪它”(暗示它可能会改变),因为字符串是不可变的。
String 将其数据存储在char[]
数组中,但在某些情况下,String 应该只使用该数组的一部分,这就是为什么它在其字段中存储int offset
该数组的开始索引 () 以及应该用于生成 String ( int count
) 的长度。方法length()
将返回count
字段的值。
字符串是不可变的,因此当创建字符串对象时,其长度将存储为该字符串对象的实例变量。