Java の古典的な面接質問集 (3)

王林
リリース: 2020-07-07 16:54:26
転載
2115 人が閲覧しました

Java の古典的な面接質問集 (3)

1. String、StringBuffer、StringBuilder の違い

(関連チュートリアルの推奨事項:Java インタビューの質問)

String の値は不変であるため、String に対して操作が実行されるたびに新しい String オブジェクトが生成されます。

StringBuffer クラスと StringBuilder クラスのオブジェクトは、新しい未使用のオブジェクトを生成することなく、何度でも変更できます

速度は次のとおりです: StringBuilder > StringBuffer > String

間の最大の違いStringBuilder クラスと StringBuffer の違いは、StringBuilder のメソッドがスレッドセーフではないことです。

画像を見てください:

Java の古典的な面接質問集 (3)

(推奨チュートリアル:java エントリー プログラム)

2すべて すべてのクラスはオブジェクト クラスから継承します。使用したオブジェクト クラスの直接のサブクラスは何ですか? オブジェクト クラスの一般的に使用されるメソッドは何ですか?

  • #ブール値

  • 文字

  • クラス

  • クラスローダー

  • コンパイラ

  • Enum

  • String

  • System

  • Thread

オブジェクト クラスの共通メソッド

  • toString ();

  • ## 等しい();
  • ハッシュコード();
3 . ジェネリック医薬品とは何ですか、どのように使用され、どのような利点があるのですか?

は、オブジェクトが作成されるかメソッドが呼び出されるまで、型の明確化の作業を延期する特別な型です。

パラメータ化された型。型をパラメータとして渡します。さまざまなコンテナなど、ポリモーフィズムを非常によくサポートするデザインパターンです。

利点:

実行時の問題をコンパイル期間に進め、強制的な型変換を回避します。

4. Java オブジェクトのシリアル化に SerialversionUID を使用する必要があるのはなぜですか?

#1. オブジェクトをシリアル化する理由

#オブジェクトをバイト シーケンスに変換するプロセスは、オブジェクトのシリアル化と呼ばれます

  • バイト シーケンスをオブジェクトに復元するプロセスは、オブジェクトの逆シリアル化と呼ばれます

  • 2。オブジェクトのシリアル化には主に 2 つの用途があります:

  • (1)オブジェクトのバイト シーケンスをハード ディスク (通常はファイル内) に送信します;

(2) オブジェクトのバイト シーケンスをネットワーク上に送信します。

3. SerialversionUIDを使用する理由

ユーザーが自分でserialVersionUIDを宣言しない場合、インターフェイスはデフォルトでserialVersionUIDを生成します。新しいフィールドがオブジェクトに追加されると、serialversionUIDが割り当てられます。システムによって変更され、逆シリアル化例外が発生します。

(ビデオ チュートリアルの推奨:

Java ビデオ チュートリアル

)

5. リフレクションの長所と短所

1. 利点リフレクションにより、Java プログラムの柔軟性とスケーラビリティが向上し、結合が減少し、適応能力が向上します。これにより、プログラムは、ハードコードされたターゲット クラスを呼び出すことなく、任意のクラスのオブジェクトを作成および制御できるようになります。

リフレクションは、C、C、Fortran、Pascal などの他の一般的に使用される言語では利用できません。

Java リフレクション テクノロジは、ソフトウェア テスト、JavaBean など、幅広い用途に使用できます。

Struts、Hibernate、Spring などの多くの一般的なオープン ソース フレームワークは、実装にこのテクノロジを使用しています。

2. 欠点

(1) パフォーマンスのオーバーヘッド

Reflection にはいくつかの動的型が含まれるため、JVM はこれらのコードを最適化できません。したがって、リフレクション操作は、非リフレクション操作よりもはるかに効率が低くなります。頻繁に実行されるコードや、高いパフォーマンスが要求されるプログラムでは、リフレクションの使用を避ける必要があります。

(2) セキュリティ制限

リフレクション テクノロジを使用するには、セキュリティ制限のない環境でプログラムを実行する必要があります。これは、アプレットなどのセキュリティが制限された環境でプログラムを実行する必要がある場合に問題になります。 。

(3) 内部構造の公開

リフレクションを使用すると、通常の状況では許可されない一部の操作 (プライベート プロパティやメソッドへのアクセスなど) をコードで実行できるため、リフレクションを使用すると予期せぬ問題が発生する可能性があります。副作用。コードには、移植性を低下させる機能上のエラーがあります。リフレクティブ コードは抽象化を破壊するため、プラットフォームが変わるとコードの動作も変わる可能性があります。

以上がJava の古典的な面接質問集 (3)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!