Java 中 length 和 length() 之间的区别

在现代 IDE 中,有一个自动完成功能,它提供了我们类中声明的 Java 关键字或变量,如果没有这个功能,how 知道 的大小桌子?你怎么知道丁字裤的尺寸?所有级别的开发人员(初学者或专家)都无法区分长度 和 length() 正确地,并且由于 IDE 纠正了这个问题,它仍然无法理解。在这篇文章中,我们将看看Java.

最简单的答案是 长度 用于检索数组的大小,以及 length() 是一个返回 string.

int[] array = new int[5];
System.out.println(array.length);//数组长度

String str = string”;
System.out.println(str.length());string
的length()问题是为什么数组有一个属性 长度 但不是字符串,反之亦然?

为什么 Java 中的数组具有 lening 属性?

数组是存储有限数量元素的特定类型对象的容器。板子创建后,其大小将永远不会改变并保持固定。这就是为什么长度 声明为变量final 这就是的原因 长度 

可以使用两种方法创建数组:
  1. 使用 values
  2. 通过指定其大小来实例化新数组。
使用值初始化数组会创建一个新数组,其大小与逗号分隔元素的数量相对应。

int[] tab = {1,2,3};

第二种方法是通过指定元素的类型和数量来实例化一个新数组:

String[] tab = new String[3];

为什么没有定义为 String 的 Array 类?

数组是一个对象,每个数组都有一个类 对象 以下语句是合法的:

Object obj = new String[20];
数组包含从类继承的所有方法和属性 对象 (克隆除外)。为什么没有 Array 类的定义?我们找不到 Array 类的定义,一种解释是它对我们是隐藏的。如果你仔细想想,如果有一个 Array 类,它是什么样子的?她仍然需要一块板子来存放物品,对吧?这就是为什么定义这样的类是个坏主意。实际上,你可以通过调用方法 getClass()

int[] tab = new int[2];
System.out.println(tab.getClass());
Output:

class [I

为什么 String 有 length()?

a  的数据结构字符串 是 字符。无需定义每个应用程序不需要的属性。与 C 语言不同,字符数组在 Java 中不是字符串。字符串 本质上是动态的,但长度。java 的设计者已经想到了这一点,他们决定通过创建该方法使它更容易并避免开发人员的错误。length().

References:
Javadoc: Arrays
StackOverFlow: Why isn't there a java.lang.Array class?