[解決済み] Javaでのスタティックブロックとイニシャライザーブロックの違い?重複
2023-05-18 22:36:03
質問
重複の可能性があります。
静的初期化ブロック
次のようなものを考えてみましょう。 コード :
public class Test {
{
System.out.println("Empty block");
}
static {
System.out.println("Static block");
}
public static void main(String[] args) {
Test t = new Test();
}
}
私たちは、まず 静的 ブロックが実行され、その後に 空の ブロックが実行されます。しかし問題は、私が 空の ブロックの本当の有用性を理解できないことです。どなたか、を使用した実際の例を示していただけませんか?
- 両方とも 静的 と 空 ブロックが使用されている
- 両方とも スタティック と 空 ブロックは異なるユーティリティを持ちます
どのように解決するのですか?
2つの全く異なる目的のためです。
- 静的イニシャライザー ブロックはクラスの読み込み時に呼び出され、インスタンス変数やメソッドにアクセスすることはできません。 Prahalad Deshpande のコメントのように、これは静的変数を作成するためによく使用されます。
- 一方、非静的イニシャライザー ブロックはオブジェクトの構築時にのみ作成され、インスタンス変数やメソッドにアクセスできます。また、(@EJP が提案した重要な修正により)スーパー コンストラクタが(明示的または暗黙的に)呼ばれた後に、コンストラクタの先頭で呼ばれ の前に呼び出されます。 の前に呼び出されます。クラスが複数のコンストラクタを持っていて、すべてのコンストラクタで同じ初期化コードを呼び出す必要がある場合に使用されるのを見たことがあります。コンストラクタと同様に、このブロックでは最終的でないメソッドの呼び出しを避けるべきです。
この質問はstackoverflowで何度も回答されているので、類似の質問とその回答を検索して確認するとよいでしょう。たとえば static-initialization-blocks(静的初期化ブロック
関連
-
シェルコマンドやスクリプトのJavaコール
-
ジャバアレイ
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NullPointerException - java.lang.
-
Springの設定でxsdファイルのバージョン番号を設定しない方が良い理由
-
強制型変換について
-
無効な文字定数
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
[解決済み】静的初期化ブロック