まず、final、finally、finalize の違いについて説明します。
Final? 修飾子 (キーワード) クラスが Final と宣言された場合、そのクラスは新しいサブクラスを派生できなくなり、親クラスとして継承できなくなります。したがって、クラスをabstractとfinalの両方で宣言することはできません。変数またはメソッドが使用中に変更されないように、final として宣言します。 Final として宣言された変数には、宣言時に初期値を与える必要があり、後続の参照でのみ読み取ることができ、変更することはできません。 Final として宣言されたメソッドも使用のみが可能であり、オーバーロードすることはできません。
例外処理中にクリーンアップ操作を実行するには、finally ブロックを提供します。例外がスローされた場合は、一致する catch 節が実行され、制御はfinally ブロック (存在する場合) に渡されます。
メソッド名を確定しますか? Java テクノロジを使用すると、ガベージ コレクターがメモリからオブジェクトをクリアする前に、finalize() メソッドを使用して必要なクリーンアップ作業を行うことができます。このメソッドは、オブジェクトが参照されていないと判断された場合に、このオブジェクトのガベージ コレクターによって呼び出されます。これは Object クラスで定義されているため、すべてのクラスがそれを継承します。サブクラスは、finalize() メソッドをオーバーライドして、システム リソースを整理したり、その他のクリーンアップ作業を実行したりします。ガベージ コレクターがオブジェクトを削除する前に、finalize() メソッドがオブジェクトに対して呼び出されます。
次に、HashMap と Hashtable の違いです。
これらはすべて Map インターフェイスに属し、一意のキーを特定の値にマッピングするクラスです。
HashMap クラスは並べ替えや並べ替えを行いません。 null キーと複数の null 値を許可します。
Hashtable は HashMap に似ていますが、null キーと null 値は許可されません。また、同期的であるため、HashMap よりも遅くなります。
3 番目に、String s = new String("xyz"); 作成される String オブジェクトの数は何ですか?
2 つのオブジェクトがあり、1 つは「xyx」、もう 1 つは「xyx」を指す参照オブジェクトです。
第 4 に、Threading のお気に入りの sleep() と wait() の違いは何ですか?
sleep()メソッドはスレッドを一定時間停止させるメソッドです。スリープ間隔が終了した後、スレッドは必ずしもすぐに実行を再開するとは限りません。これは、その時点で他のスレッドが実行されている可能性があり、(a) 「ウェイクアップしている」スレッドの優先順位が高い場合を除き、実行を放棄するようにスケジュールされていないためです。
(b) 実行中のスレッドが他の理由でブロックされている。
wait() がスレッドの対話に使用される場合、スレッドが同期オブジェクト x に対して wait() 呼び出しを発行すると、スレッドは実行を一時停止し、呼び出されたオブジェクトはウェイクアップされるか待機時間が経過するまで待機状態になります。
第 5 に、 short s1 = 1; s1 = s1 + 1; の何が問題ですか?
short s1 = 1; s1 = s1 + 1; は間違っています。s1 は short 型で、s1+1 は int 型であり、明示的に short 型に変換できません。 s1 =(short)(s1 + 1) のように変更できます。短い s1 = 1; s1 += 1 は正しいです。
6 番目に、オーバーロードとオーバーライドの違いです。オーバーロードされたメソッドは戻り値の型を変更できますか?
メソッドのオーバーライドとオーバーロードは、Java ポリモーフィズムの異なる表現です。オーバーライドは親クラスとサブクラス間の多態性の現れであり、オーバーロードはクラス内の多態性の現れです。サブクラスで定義されたメソッドがその親クラスと同じ名前とパラメータを持つ場合、そのメソッドはオーバーライドされていると言います。サブクラスのオブジェクトがこのメソッドを使用すると、サブクラスの定義が呼び出されるため、親クラスの定義が「シールド」されているように見えます。クラス内に同じ名前の複数のメソッドが定義されており、それらのメソッドのパラメーターの数または型が異なる場合、それをメソッドのオーバーロードと呼びます。オーバーロードされたメソッドは戻り値の型を変更できます。
7 番目に、Set 内の要素は繰り返すことができません。では、それらが繰り返されるかどうかを区別するにはどのような方法が使用されますか? == を使用するか、equals() を使用する必要がありますか?
Set 内の要素は繰り返すことができないため、iterator() メソッドを使用して、それらが繰り返されているかどうかを区別します。 equals() は 2 つの Set が等しいかどうかを判断します。
equals() メソッドと == メソッドは、参照値が同じオブジェクトを指しているかどうかを決定し、2 つの別個のオブジェクトの内容と型が一致する場合に true を返すように、equals() がクラス内でオーバーライドされます。
第 8 に、エラーと例外の違いは何ですか?
エラーは、回復が不可能ではないが困難な状況における重大な問題を表します。たとえば、メモリのオーバーフローです。プログラムがそのような状況に対処することを期待することは不可能です。
例外は設計または実装の問題を表します。つまり、プログラムが正常に実行されている場合には決して起こらない状況を表します。
9 番目に、最も頻繁に発生する実行時例外を教えてください。
ArithmeticException、ArrayStoreException、BufferOverflowException、BufferUnderflowException、CannotRedoException、CannotUndoException、ClassCastException、CMMException、ConcurrentModificationException、DOMException、EmptyStackException、IllegalArgumentException、IllegalMonitorStateException、IllegalPathStateException、IllegalStateException、
ImagingOpException、IndexOutOfBoundsException、MissingResourceException、NegativeArraySizeException、NoSuchElementException、NullPointerException、ProfileDataException、ProviderException、RasterFormatException、SecurityException、SystemException、UndeclaredThrowableException、UnmodifiableSetException、UnsupportedOperationException
第 10 に、Set 内の要素は繰り返すことができません。では、それらが繰り返されるかどうかを区別するにはどのような方法が使用されますか? == を使用するか、equals() を使用する必要がありますか?
Set 内の要素は繰り返すことができないため、iterator() メソッドを使用して、それらが繰り返されているかどうかを区別します。 equals() は 2 つの Set が等しいかどうかを判断します。
equals() メソッドと == メソッドは、参照値が同じオブジェクトを指しているかどうかを決定し、2 つの別個のオブジェクトの内容と型が一致する場合に true を返すように、equals() がクラス内でオーバーライドされます。