1.静的
1.1静的の基本的な考え方
静的メソッドは、この方法ではありません。あなたは、順番に、可能であり、静的メソッド内で非静的メソッドを呼び出すことはできません。そして、あなたは唯一のクラス自体によって静的メソッドを呼び出すために、前提が存在しない場合に任意のオブジェクトを作成することができます。これは実際には、静的メソッドの主な目的です。
---- "Javaプログラミングのアイデア" P86
それは単にです:オブジェクトを下に作成していない場合に便利コール(メソッド/変数)。
すなわち:オブジェクトを作成するには、静的なキーワードは訪問に行くことができ、クラス名から直接呼び出す必要はありません変更されます。
1.2静的な使い方
- 静的キーワード修飾クラス(静的な内部クラスを修正することができます)
public class StaticTest {
//static关键字修饰内部类
public static class InnerClass{
InnerClass(){
System. out . pr intnc("========静态内部类========");
}
public void InnerMethod( {
System. out.pr intln("========静态内部方法======");
}
public static void main(String[] args) {
//直接通过StaticTest类名访问静态内部关InnerClass
InnerClass inner=new StaticTest.InnerClass();
//静态内部类可以和普通关一样使用
inner.InnerMethod();
}
}
/*输出是
*========静态内部类========
*========静态内部方法==========
*/
-
スタティックを修正する方法キーワード
- 静的メソッドは、一般的に、静的な方法としては、任意のオブジェクトに依存しない静的メソッドにアクセスすることができると呼ばれ
- あなたは、静的メソッド非静的メンバ変数と非静的メンバメソッドでクラスにアクセスすることはできません
- この方法は、非静的メンバは、静的メンバメソッド/変数にアクセス可能です
- 静的メンバメソッドは、静的メンバメソッドを呼び出すことができ
-
静的変数は、キーワードを修正しました
- また、静的変数静的変数として知られ、静的および非静的変数の違いは、変数を以下のとおりです。静的変数は、すべてのオブジェクトによって共有され、メモリ内の唯一のコピーが、それは初期の負荷クラスが初期化されている場合のみとする場合です。
- 初期化シーケンスの静的メンバ変数が定義されたシーケンスを初期化されます。
-
静的キーワード変性ブロック
- クラスが最初にロードされたときに実行されるコードの静的ブロックが、一度だけ実行されます
- コードの静的ブロックを形成するためのアプリケーションのパフォーマンスを最適化します
2.最終
2.1最終の基本的な使い方
-
変数のキーワードの最終修正
- 最後のキーワードで一度しか変数の割り当てを変更し、寿命の間にその値を変更することはできません。
- メンバーは、静的および最終変更周期を使用し、同時にメモリにのみ保存スペースを占有変更することはできません。
-
最後のキーパラメータ変更方法
public class FinalTest {
/* ... */
public void finalFunc(final int i, final Value value) {
// i = 5; 不能改变i的值
// value = new Value(5); 不能改变v的值
value.v = 5; // 可以改变引用对象的值
}
}
class Value {
int v;
public Value(int v) {
this.v = v;
}
}
-
キーワード、最終的な修正方法
- プラスキーワード方法の前に最終的には、この方法は、キルトクラスのオーバーライドメソッドの代表ではないかもしれません
- コンパイル時に静的に結合されており、実行時に動的結合を必要としないため、最終的な方法は、より高速な非finalメソッドよりも
- すべてのプライベートクラスメソッドは、暗黙のうちに最終的に指定します
-
変更されたクラスfinalキーワード
- 最後のクラスと呼ばれるクラスを変更するために、最終的な使用します。最後のクラスは、通常は完全に機能している、彼らは継承できません
- 最後のクラスメソッドのすべてのメンバーは、暗黙のうちに、最終的な方法として指定されます
- こうした文字列、Intergerおよびその他の包装など、多くのJavaクラスが最終的なものであります。
利点2.2 finalキーワード
- 最後のキーワードは、パフォーマンスを向上させました。JVMおよびJavaアプリケーションは、最終的な変数をキャッシュされます。
- 最後の変数は、安全に、追加の同期化のオーバーヘッドを必要とせずに、マルチスレッド環境で共有することができます。
- finalキーワード、JVMの意志方法、クラス変数と最適化。
クラスの初期化シーケンスに添付:
親クラスの静的変数
静的親クラスのコードブロック
サブクラスの静的変数
サブクラスの静的コードブロック
親のクラスA普通変数
共通の親コードブロック
親クラスのコンストラクタ
通常の変数のサブクラス
サブクラス通常のコードブロック
サブクラスのコンストラクタ