ホームページ  >  記事  >  Java  >  Java の static の特性の詳細な紹介

Java の static の特性の詳細な紹介

黄舟
黄舟オリジナル
2017-03-24 10:32:031408ブラウズ

この記事では主にJavaのstaticの特徴を紹介します。非常に良い基準値を持っています。編集者と一緒に見てみましょう

二日前のインタビューで静的の特徴について質問されましたが、その時はあまり良くなかったので、今からまとめてみましょう

Java における static については、次の点から説明します。

1. Java における static は何を表すのか、そしてなぜそれを使用する必要があるのですか?

2. Javaで静的を使用するには?

3. 静電気の特徴と「限界」は何ですか?

4. メンバー変数が静的に変更される場合、静的でないメンバー変数との違いは何ですか?

1. Java における静的とは何を意味しますか?なぜそれを使用する必要があるのですか?

static - static - 「指定された場所」

まず、Java のメモリを見てみましょう。Java はメモリをスタック メモリとヒープ メモリに分割し、いくつかの基本的なタイプの変数、配列、およびオブジェクトを格納します。ヒープ メモリは主にオブジェクトを配置するために使用されます。

static で変更された変数とメソッドは、実際にはメモリ (静的ストレージ) 内のこれらの変数とメソッドの「固定位置」を指定します。 「固定位置」があるので「サイズ」も固定されているように見える 固定位置と固定サイズの特性により、スタックやヒープのスペースを空けるのに非常に便利です。静的変数またはメソッドがスコープ外に出ない場合、その参照ハンドルは変更されません。

よく目にするのは、静的変数は C のグローバル変数の概念に似ているということです。静的とはメモリの共有、つまり、その各インスタンスが同じメモリ アドレスを指すことを意味します。静的にするということは、JVM が静的であることを意味し、その参照 (間接参照を含む) がすべて同じ場所を指していることを意味します。その場所を変更すると、以前と同じにはなりません。戻ってこないよ。

注: Java の main クラスの main() メソッド自体は静的であるため、新しいインスタンスが生成されないときに main メソッドが実行されます。

2. Javaで静的を使用するには?

  • staticは、メンバー(メンバー変数やメンバー関数)を変更するために使用される修飾子です。

  • メンバーが静的に変更される場合、オブジェクトによって呼び出されるほかに、クラス名.static member によって直接呼び出すこともできます。

3. 静電気の特徴と「限界」は何ですか? (1)クラスがロードされると、staticメンバーが存在します

静的メンバーには追加の呼び出しメソッドがあり、クラス名によって直接呼び出すことができます。

(2) 長所と短所
  • 長所:

  • オブジェクトの共有データを別のスペースに保存し、スペースを節約し、各オブジェクトにコピーを保存する必要がありません。
  • はクラス名で直接呼び出すことができます。

短所:

ライフサイクル

が長すぎる;
  • アクセスが制限されており、静的にのみアクセスできます。
(3)

注意事項

  • 静的メソッドは静的メンバーのみにアクセスでき、非静的メソッドは静的メンバーと非静的メンバーの両方にアクセスできます

    は静的メソッドでは定義できません。 this,
  • super
  • キーワード; (これはオブジェクトを表し、静的に存在する場合はオブジェクトが存在しない可能性があり、静的メソッドが実行されているときはオブジェクトによって表されません。簡単に言うと、アドバンストメモリのデータはバックワードメモリのデータにアクセスできませんが、バックワードメモリのデータはアドバンストメモリのデータにアクセスできます

メイン関数は静的です

4. メンバー変数が静的に変更される場合と非静的メンバーの違いは何ですか?

  • 静的変数はクラス変数とも呼ばれます。つまり、この変数はクラスに属しており、非静的変数はメンバー変数、またはインスタンス変数と呼ばれます。オブジェクトであり、特定のオブジェクトに属します。

  • 静的変数はクラスがロードされるときにロードされます。つまり、クラスが消滅すると消滅し、ライフサイクルが最も長くなります。インスタンス変数はオブジェクトの作成時にロードされ、オブジェクトが消滅すると消滅します。オブジェクトのライフサイクルにわたって存在します。

  • 静的変数はメソッド領域の静的領域に格納され、インスタンス変数はオブジェクトが属するヒープメモリに存在します。

  • 静的変数のデータはすべてのオブジェクトで共有されます。インスタンス変数はオブジェクト内で一意のデータです。

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

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