ホームページ >Java >&#&チュートリアル >Java の静的と非静的の違いの簡単な紹介

Java の静的と非静的の違いの簡単な紹介

黄舟
黄舟オリジナル
2017-10-10 10:22:291522ブラウズ

この記事は主に Java の静的および非静的関連の内容を紹介しています。編集者はそれを必要とする友人に共有します。

静的変数と非静的変数の違いについて

1. 静的に変更された変数は、クラス変数、またはグローバル変数、またはメンバー変数と呼ばれます。クラスがロードされると、メンバー変数が初期化され、クラスに関連付けられます。クラスが存在する限り、静的変数は存在します。非静的変更メンバー変数は、新しいオブジェクトが作成されるときに記憶域を分割し、このメンバー変数は現在のオブジェクトによってのみ所有されます。

2. 静的変更された変数は、メインメソッドの前にメモリのデータ共有領域にロードされます。非静的変数をロードする場合は、変数をロードする必要があります。ヒープメモリ。

3. 静的変数は記憶域を個別に分割し、特定のオブジェクトにバインドされません。記憶域はクラスの各オブジェクトによって共有されます。静的変数の値はメソッド領域に 1 回読み込まれますが、非静的変数はオブジェクトの作成時に何度も読み込まれます。作成されるたびにコピーが作成されます。

4. オブジェクトがメンバー変数を参照する場合、それはクラス名.変数名を通じて直接呼び出されます。オブジェクトがインスタンス変数を参照する場合、オブジェクト名.変数名を通じてのみ呼び出すことができます。

5. クラス内のメンバー変数を呼び出す場合は、直接呼び出すか、クラス名.変数名という形式で呼び出します。インスタンス変数の場合は、これを使用するか、直接呼び出します。

静的メソッドと非静的メソッドの違いについて

1. 静的修正メソッドも静的メソッドと同じです。共有使用のためにメインメソッドの前にメソッド領域にロードされます。

2. 静的静的メソッドでは this または super キーワードを使用できません。静的メソッドはオブジェクトが作成される前にロードされたメソッドであり、this と super はこのクラスのオブジェクトを指します。または、親クラスのオブジェクトに非静的メソッドが属し、そのメソッド内で this と super を使用できます。

3. 静的メソッドは、オブジェクト.メソッド名またはクラス名.メソッド名を使用して呼び出すことができます。非静的メソッドは、オブジェクトの作成後にのみ呼び出すことができます。

4. 静的メソッドは一度ロードされ、すべてのオブジェクトによって共有されます。非静的メソッドはオブジェクトの数だけコピーされ、各オブジェクトは独自のコピー メソッドのみを呼び出すことができます。

5. オブジェクトが非静的メソッドを呼び出す場合、スレッドの安全性の問題は考慮されませんが、静的メソッドを呼び出す場合は、セキュリティの問題を考慮する必要があります。静的メソッドのコピーは 1 つしかないためです。オブジェクトのメソッドには独自のメソッドがあります。

6. 同じクラス内では、静的メソッドはクラス内の静的メンバーにのみアクセスできます。非静的メソッドは、非静的メソッドにアクセスできます (クラス名を使用して非静的メソッドを呼び出すか、このクラスのオブジェクトを作成します)。

概要

以上がJava の静的と非静的の違いの簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。