目录

先看一些例子

深究

总结


先看一些例子:

  1. public static void main(String[] args){ System.out.println(str.length()); String[] str1 = {"abc","dsa"}; System.out.println(str1.length); System.out.println(arr.length);

上面是通过IDEA来编辑的,它会提醒你是用length 还是 length()。所以问题来了,为什么第一个示例提示使用length(),而第二个和第三个提示我们用length呢?

深究:

先看第一个示例:我们按住 Ctrl 然后鼠标左击 length() 进入查看方法的实现。发现 length() 它背后的方法是返回了 value.length,继续查看 value,如右图所示,它定义的是一个字符数组。

Java中的length和length() - 图1
Java中的length和length() - 图2

通过上面的查看,我们终于明白了,原来字符串是通过 char 数组来存储的。

那为什么数组可以有自己的length 属性呢?

原因是数组是一个容器对象,其中包含固定数量的同一类型的值。一旦数组被创建,他的长度就是固定的了。数组的长度可以作为final实例变量的长度。因此,长度(length)可以被视为一个数组的属性

所以,既然本质都是数组,那字符串也就没有必要来定义一个不必要的属性(因为该属性在 char 数值中已经提供了)。

总结:

  • Java 中 String 类定义的字符串对象,用length()求它的长度。
  • 若是数组求长度,均可使用他们自己的属性 length

对求长度的总结:

  1. 数组. length 属性 ,返回值 int
  2. 字符串. length() 方法,返回值 int
  3. 集合. size() 方法,返回值 int
    https://blog.csdn.net/m0_38109046/article/details/88395380