1. String、StringBuffer、StringBuilder の違い
(関連チュートリアルの推奨事項: Java インタビューの質問)
String の値は不変であるため、String に対して操作が実行されるたびに新しい String オブジェクトが生成されます。
StringBuffer クラスと StringBuilder クラスのオブジェクトは、新しい未使用のオブジェクトを生成することなく、何度でも変更できます
速度は次のとおりです: StringBuilder > StringBuffer > String
間の最大の違いStringBuilder クラスと StringBuffer の違いは、StringBuilder のメソッドがスレッドセーフではないことです。
画像を見てください:
(推奨チュートリアル: java エントリー プログラム )
2すべて すべてのクラスはオブジェクト クラスから継承します。使用したオブジェクト クラスの直接のサブクラスは何ですか? オブジェクト クラスの一般的に使用されるメソッドは何ですか?
は、オブジェクトが作成されるかメソッドが呼び出されるまで、型の明確化の作業を延期する特別な型です。
パラメータ化された型。型をパラメータとして渡します。さまざまなコンテナなど、ポリモーフィズムを非常によくサポートするデザインパターンです。
利点:
実行時の問題をコンパイル期間に進め、強制的な型変換を回避します。
4. Java オブジェクトのシリアル化に SerialversionUID を使用する必要があるのはなぜですか?#1. オブジェクトをシリアル化する理由
#オブジェクトをバイト シーケンスに変換するプロセスは、オブジェクトのシリアル化と呼ばれます
バイト シーケンスをオブジェクトに復元するプロセスは、オブジェクトの逆シリアル化と呼ばれます
2。オブジェクトのシリアル化には主に 2 つの用途があります:
(2) オブジェクトのバイト シーケンスをネットワーク上に送信します。
3. SerialversionUIDを使用する理由
ユーザーが自分でserialVersionUIDを宣言しない場合、インターフェイスはデフォルトでserialVersionUIDを生成します。新しいフィールドがオブジェクトに追加されると、serialversionUIDが割り当てられます。システムによって変更され、逆シリアル化例外が発生します。
(ビデオ チュートリアルの推奨:
Java ビデオ チュートリアル)
1. 利点リフレクションにより、Java プログラムの柔軟性とスケーラビリティが向上し、結合が減少し、適応能力が向上します。これにより、プログラムは、ハードコードされたターゲット クラスを呼び出すことなく、任意のクラスのオブジェクトを作成および制御できるようになります。
リフレクションは、C、C、Fortran、Pascal などの他の一般的に使用される言語では利用できません。
Java リフレクション テクノロジは、ソフトウェア テスト、JavaBean など、幅広い用途に使用できます。
Struts、Hibernate、Spring などの多くの一般的なオープン ソース フレームワークは、実装にこのテクノロジを使用しています。
2. 欠点
(1) パフォーマンスのオーバーヘッド
Reflection にはいくつかの動的型が含まれるため、JVM はこれらのコードを最適化できません。したがって、リフレクション操作は、非リフレクション操作よりもはるかに効率が低くなります。頻繁に実行されるコードや、高いパフォーマンスが要求されるプログラムでは、リフレクションの使用を避ける必要があります。
(2) セキュリティ制限
リフレクション テクノロジを使用するには、セキュリティ制限のない環境でプログラムを実行する必要があります。これは、アプレットなどのセキュリティが制限された環境でプログラムを実行する必要がある場合に問題になります。 。
(3) 内部構造の公開
リフレクションを使用すると、通常の状況では許可されない一部の操作 (プライベート プロパティやメソッドへのアクセスなど) をコードで実行できるため、リフレクションを使用すると予期せぬ問題が発生する可能性があります。副作用。コードには、移植性を低下させる機能上のエラーがあります。リフレクティブ コードは抽象化を破壊するため、プラットフォームが変わるとコードの動作も変わる可能性があります。
以上がJava の古典的な面接質問集 (3)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。