ホームページ  >  記事  >  Java  >  Java の古典的な面接の質問_インターン生必見!

Java の古典的な面接の質問_インターン生必見!

(*-*)浩
(*-*)浩オリジナル
2019-11-08 16:02:033018ブラウズ

古典的な Java 面接の質問 - インターン生は必ず尋ねるべき質問!

Java の古典的な面接の質問_インターン生必見!

まず、final、finally、finalize の違いについて説明します。

final? 修飾子 (キーワード) クラスが Final と宣言された場合、そのクラスは新しいサブクラスを派生できず、親クラスとして継承できないことを意味します。したがって、クラスをabstractとfinalの両方で宣言することはできません。変数またはメソッドが使用中に変更されないように、final として宣言します。 Final として宣言された変数には、宣言時に初期値を与える必要があり、後続の参照でのみ読み取ることができ、変更することはできません。 Final として宣言されたメソッドも使用のみが可能であり、オーバーロードすることはできません。

finally? 例外処理中にクリーンアップ操作を実行するには、finally ブロックを提供します。例外がスローされた場合は、一致する catch 節が実行され、制御はfinally ブロック (存在する場合) に渡されます。

finalize?メソッド名。 Java テクノロジを使用すると、ガベージ コレクターがメモリからオブジェクトをクリアする前に、finalize() メソッドを使用して必要なクリーンアップを実行できます。このメソッドは、オブジェクトが参照されていないと判断された場合に、このオブジェクトのガベージ コレクターによって呼び出されます。これは Object クラスで定義されているため、すべてのクラスがそれを継承します。サブクラスは、finalize() メソッドをオーバーライドして、システム リソースを整理したり、その他のクリーンアップ作業を実行したりします。ガベージ コレクターがオブジェクトを削除する前に、finalize() メソッドがオブジェクトに対して呼び出されます。

2 つ目は、HashMap と Hashtable の違いです。

はすべて、Map インターフェイスに属するクラスであり、一意のキーを特定の値にマッピングすることを実装します。

HashMap クラスは分類や並べ替えを行いません。 null キーと複数の null 値を許可します。

Hashtable は HashMap に似ていますが、null キーと null 値は許可されません。また、同期的であるため、HashMap よりも遅くなります。

3 番目、String s = new String("xyz"); 作成される String オブジェクトの数はいくつですか?

2 つのオブジェクト、1 つは "xyx"、もう 1 つは参照オブジェクトは「xyx」を指しています。

4 番目に、sleep() と wait() の違いは何ですか? スレッドのお気に入り

sleep() メソッドは、スレッドを停止するためのメソッドです。ある期間。スリープ間隔が終了した後、スレッドは必ずしもすぐに実行を再開するとは限りません。これは、(a) 「ウェイクアップしている」スレッドの優先順位が高い場合を除き、その時点で他のスレッドが実行中である可能性があり、実行を放棄するようにスケジュールされていないためです。

(b) 実行中のスレッドが他の理由でブロックされています。

wait() はスレッドが対話するときです。スレッドが同期オブジェクト x に対して wait() 呼び出しを発行すると、スレッドは実行を一時停止し、呼び出されたオブジェクトはウェイクアップされるか待機状態になるまで待機状態になります。時間が経過します。

5 番目、 short s1 = 1; s1 = s1 1; 何が問題ですか? short s1 = 1; s1 = 1; 何が問題ですか?

short s1 = 1; s1 = s1 1; 間違っています。s1 は short 型で、s1 1 は int 型であり、明示的に short 型に変換できません。これは、s1 =(short)(s1 1) のように変更できます。 short s1 = 1; s1 = 1 が正しいです。

6 番目、オーバーロードとオーバーライドの違い。オーバーロードされたメソッドは戻り値の型を変更できますか?

メソッドのオーバーライドとオーバーロードは、Java ポリモーフィズムの異なる現れです。オーバーライドは親クラスとサブクラス間の多態性の現れであり、オーバーロードはクラス内の多態性の現れです。

サブクラスで定義されたメソッドがその親クラスと同じ名前とパラメーターを持つ場合、そのメソッドはオーバーライドされている (オーバーライド) と言います。サブクラスのオブジェクトがこのメソッドを使用すると、サブクラスの定義が呼び出されるため、親クラスの定義が「シールド」されているように見えます。

同じ名前の複数のメソッドがクラス内に定義されており、それらのメソッドのパラメーターの数やパラメーターの型が異なる場合、それをメソッドのオーバーロードと呼びます。オーバーロードされたメソッドは戻り値の型を変更できます。

7 番目、エラーと例外の違いは何ですか?

エラーは、回復が不可能ではないが困難な場合の深刻な問題を示します。たとえば、メモリのオーバーフローです。プログラムがそのような状況に対処することを期待することは不可能です。

例外は、設計または実装の問題を表します。つまり、プログラムが正常に実行されている場合には決して起こらない状況を表します。

8 番目に、最も頻繁に発生する実行時例外を教えてください。

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

9 番目に、Set 内の要素は繰り返すことができないので、重複を区別するためにどのような方法が使用されますか? == または equals() を使用する必要がありますか? それらの違いは何ですか?

#Set 内の要素は繰り返すことができないため、iterator() メソッドを使用して、それらが繰り返されているかどうかを区別します。 equals() は 2 つの Set が等しいかどうかを判断します。

equals() メソッドと == メソッドは、参照値が同じオブジェクトを指しているかどうかを決定します。2 つの別個のオブジェクトの内容と型が異なる場合に true 値を返すために、equals() はクラス内でオーバーライドされます。マッチ。

以上がJava の古典的な面接の質問_インターン生必見!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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