メンバ変数、ローカル変数、静的変数でのJavaの分析
Javaの変数は、大きく分けメンバ変数とローカル変数二つのカテゴリーに。
メンバー変数:体と呼ばれるクラスのメンバ変数内で定義された変数。
メンバ変数staticキーワードは、呼び出されたメンバ変数変更した場合、静的変数やクラス変数を、
メンバ変数staticキーワードが変更されていない場合は、メンバ変数は、非静的変数やインスタンス変数と呼ばれています。
ローカル変数:パラメータ、変数の方法で定義されているが、可変コードがブロックで定義され、ローカル変数が属します。
次の表は、3との間の差です。
3間の基本的な違いがある:異なる記憶場所は、異なる特性を判定する。
ここでは主に紹介する静的変数の長所と短所を:
特徴:
1、あなたが共有データオブジェクトの共通性を達成したいオブジェクト。この静的データを変更することができます。
図2に示すように、静的メンバ変更された、そのままクラス名で呼び出すことができます。言い換えれば、マルチウェイコールの静的メンバー。クラス名。静的。
静荷重とクラスの負荷と3、。そして、オブジェクト内の優先順位があります。
短所:
図1は、いくつかのデータは、静的変更することができないオブジェクト固有のデータです。そのため、その場合には、特定のデータは、共有データオブジェクトになります。質問のうち、物事のような記述。静的定義するときしたがって、それは、このデータがオブジェクトを共有されているかどうか、明確でなければなりません。
2、静的メソッドは静的メンバーのみにアクセスすることができ、非静的メンバにアクセスすることはできません。静的メソッドをロードするので、それが存在するオブジェクトよりも優先されますので、オブジェクトのメンバにアクセスする方法はありません。
3、静的メソッドは、この、superキーワードを使用することはできません。これはオブジェクトを表し、場合静的なので、そこにはオブジェクトなくてもよいので、これは使用できません。
静的変数を使用する場合は?
プログラムの実行、いくつかの時点で、メモリ空間のオーバーヘッド、共有リソースを節約するために、我々は静的変数としてクラス変数を宣言することができますので、クラスのすべてのインスタンスで共有されているクラスの静的変数のメモリ空間の間に。しかし、静的変数のライフサイクルは長すぎるので、簡単にあなたがすべての不合理を使用している場合、それはメモリの大量の廃棄物が生じ、逆になり、回収システムにすることはできません。したがって、以下の条件を満たしているすべてのケースで静的変数を使用することをお勧めします。
ボリュームオブジェクトは、(1)より多くのメモリを占有し、大きな変数を含みます
(2)変数は、長いオブジェクトのライフサイクルを含んでいます
オブジェクトデータ(3)安定化変数を含みます
(4)そのような要件の例は、オブジェクトを含む変数を共有しています
要約:
本質的に3つの変数が、しかし、使用してShique罠に陥り、おそらくあまりにも簡単に大きな差があります。そして、覚えておく:変数属性は、クラスを記述するために使用することができるならば、クラスで、それはそうでない場合、それはローカル変数として定義する必要があり、メンバ変数として定義されています。変数が(内容はすべてのオブジェクトによって共有されている)大きな画像で使用することができるならば、我々は静的変数、すなわち静的変数を変更するためにこれを置くことができます。
オリジナル住所:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc