技術共有

毎日 2 つの Java 面接の質問 (1)

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. このキーワードとスーパーキーワードの違いと関連性

this キーワードはこのクラスで使用されます。

クラス内では、任意のメソッドでこれを使用して、現在のオブジェクトを参照できます。

this キーワードは、グローバル変数とローカル変数の間の競合を解決するために使用されます。

this() は同じクラスのオーバーロードされたコンストラクターを呼び出すことができ、最初の行に配置する必要があります。

super キーワードはサブクラスで使用されます。

サブクラスでは、親クラスのメソッドとプロパティをスーパー経由で呼び出すことができます。

super() は親クラスのコンストラクターを呼び出すことができ、最初の行に配置する必要があります。

super() と this() を同時に使用することはできません。また、どちらも静的メソッド内で使用することはできません。

2.finalキーワードとstaticキーワードの違い

Final は変数、メソッド、クラスを変更します

Final が変数を変更する場合、その変数は定数であるため変更できず、定義時に初期化する必要があります。

メソッドがfinalの場合、そのメソッドはサブクラスによってオーバーライドできません。

Final がクラスを変更すると、そのクラスを拡張したりサブクラス化したりできなくなります。 Java クラス ライブラリの String と Math は最終クラスです。

最終的に変更された参照型定数

定数が基本データ型の場合は変更できません。

定数が参照型の場合、他のオブジェクトを参照に割り当てることはできませんが、その参照を使用してオブジェクト内のプロパティを変更することはできます。

static によって変更された変数は静的変数であり、本質的にはクラスのすべてのインスタンスが同じ静的変数を共有します。したがって、オブジェクトを通じて静的変数の値を変更した後、クラスの他のオブジェクトを通じてアクセスされた静的変数には、変更された値が含まれます。クラスが仮想マシンによってロードされると、静的変数が初期化され、クラスのオブジェクトを作成せずに静的変数を使用できるようになります。

static によって変更されたメソッドは静的メソッドであり、他の静的メソッドを直接呼び出すことのみが可能で、静的データに直接アクセスすることのみが可能で、いかなる方法でも this キーワードや super キーワードを参照することはできません。

static によって変更されたコード ブロックは、一度だけ実行され、クラスがロードされたときに実行される静的コード ブロックです。その機能は、データを静的に初期化することです。