を理解する静的初期化ブロック
をJavaでは、静的初期化ブロックは、クラス内の静的フィールドを初期化する特別なメカニズムを提供します。静的フィールドは1回のみ初期化され、クラスのすべてのインスタンスで同じ値を共有します。宣言内の静的フィールドに値を割り当てることは可能ですが、このアプローチが非現実的である特定のシナリオがあります。たとえば、構成設定に基づいて初期化されたデータベース接続のリストを表すフィールドを想像してください。構成がまだ利用できないため、このフィールドを宣言内で直接初期化することはできません。これらのブロックはクラスのロード中に実行され、現在のコンテキストに基づいて静的フィールドを初期化する便利な方法を提供します。それらは静的な巻き毛装具に囲まれています:
public static class test { static { //ここで静的フィールドを初期化します } }
static vs. staticブロック
静的初期化ブロックとは異なり、非静的ブロック(インスタンス初期化ブロックとも呼ばれます)は、クラスのインスタンスが作成されるたびに実行されます。インスタンス固有のフィールドを初期化したり、他のセットアップ操作を実行したりするために使用されます。 static { system.out.println( "staticブロックが1回実行された"); } { system.out.println( "インスタンスが作成されるたびに実行される非静的ブロック"); } public static void main(string [] args){ T1 = new Test(); //実行されていない非静的ブロック T2 = new Test(); //再び実行された非静的ブロック } }
public static class Test { static { // Initialize static fields here } }
が観察できるように、クラスの読み込み中に静的ブロックは1回だけ実行されますが、クラスのインスタンスが作成されるたびに非静的ブロックは実行されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3