Javaのlengthとlength()の違い

最近のIDEには、クラスで宣言されたJavaキーワードまたは変数を提供するオートコンプリート機能がありますが、この機能がないと、どのように 知る のサイズは、テーブル。そして、あなたはどうやって皮ひものサイズを知るのですか?すべてのレベルの開発者(初心者またはエキスパート)は、長さ および length() 正しく、IDEはこの問題を修正しているため、まだ理解できないままです。この記事では、Java.

最も簡単な答えは、配列、文字列に関するいくつかの概念を見ていきます 長さ は、配列のサイズを取得するために使用され、 length() は文字列のサイズを返すメソッドです.

int[] array = new int[5];
System.out.println(array.length);//配列の長さ

String str = "string";
System.out.println(str.length());length() for string
問題は、なぜ配列に属性があるのかということです 長さ しかし、文字列とその逆ではありませんか?

Javaの配列にleningプロパティがあるのはなぜですか?

配列は、限られた数の要素を格納する特定の型のオブジェクトのコンテナです。ボードが作成されると、そのサイズは変更されず、固定されたままになります。そのため、長さ が変数として宣言されているfinal そして、それが理由です 長さ は、作成時に配列を定義する属性と見なされます。

配列は、次の 2 つの方法で作成できます。
  1. 値で新しい配列を初期化します。
  2. サイズを指定して新しい配列をインスタンス化します。
値で配列を初期化すると、カンマで区切られた要素の数に対応するサイズの新しい配列が作成されます。

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

2番目の方法は、型と要素数を指定して新しい配列をインスタンス化することです:

String[] tab = new String[3];

Stringとして定義されたArrayクラスがないのはなぜですか?

配列はオブジェクトであり、各配列にはクラスがあります オブジェクト 次のステートメントは有効です:

Object obj = new String[20];
配列には、クラスから継承されたすべてのメソッドと属性が含まれます オブジェクト (cloneを除く)。Arrayクラスの定義がないのはなぜですか?Arrayクラスの定義が見つかりませんが、1つの説明は、それが私たちから隠されているということです。少し考えてみると、Arrayクラスがあるとしたら、それはどのように見えましたか?アイテムを保管するためのボードはまだ必要ですよね?そのため、このようなクラスを定義するのは悪い考えです。実際、配列のクラスは、メソッド を呼び出すことで取得できます。getClass():

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

class [I

なぜStringはlength()なのか?

文字列 は のテーブルです。Charです。アプリケーションごとに必要のない属性を定義する必要はありません。C言語とは異なり、Javaでは文字配列は文字列ではありません。文字列 は本質的に動的ですが、lengthです。Javaの設計者はそれを考え、メソッドを作成することでそれをより簡単にし、開発者の間違いを回避することにしました。length().

References:
Javadoc: Arrays
StackOverFlow: java.lang.Array クラスがないのはなぜですか?