検索
ホームページJava&#&面接の質問Java リフレクションのよくある面接の質問

Java リフレクションのよくある面接の質問

#リフレクションとは何ですか?

リフレクションは主に、プログラムが自身の状態や動作にアクセス、検出、変更する能力を指します

Java リフレクション: : Java のよくある面接の質問)

Java ランタイム環境では、どのクラスについても、このクラスにどのようなプロパティとメソッドがあるかわかりますか?

任意のオブジェクトに対して、そのメソッドのいずれかを呼び出すことができますか?

Java リフレクション メカニズムは主に次の機能を提供します。

実行時にオブジェクトが属するクラスを決定します。

実行時に任意のクラスのオブジェクトを構築します。

実行時にクラスのメンバー変数とメソッドを判断します。

実行時に任意のオブジェクトのメソッドを呼び出します。

Java シリアル化とは何ですか?シリアル化が必要になるのはどのような場合ですか?

簡単に言えば、さまざまなオブジェクト (メソッドではなくインスタンス変数) の状態をメモリに保存し、保存されたオブジェクトの状態を読み出すことです。

独自のさまざまなメソッドを使用してオブジェクトの状態を保存できますが、Java は、オブジェクトの状態を保存するために独自のメソッドよりも優れたメカニズム、つまりシリアル化を提供します。

シリアル化が必要な状況:

a) メモリ内のオブジェクトの状態をファイルまたはデータベースに保存する場合;

b ) ソケットを使用してネットワーク経由でオブジェクトを転送したい場合;

c) RMI 経由でオブジェクトを転送したい場合;

ダイナミック プロキシとは何ですか?アプリケーションには何がありますか?

動的プロキシ:

特定のインターフェイスを実装したクラス内のメソッドに追加の処理を追加したい場合。

たとえば、ログの追加、トランザクションの追加などです。このクラスのプロキシを作成できるため、その名前は新しいクラスを作成することを意味します。このクラスには、元のクラス メソッドの機能が含まれるだけでなく、元のベースに追加の処理を備えた新しいクラスも追加されます。

このプロキシ クラスは定義されていませんが、動的に生成されます。デカップリングの重要性、柔軟性、強力な拡張性を備えています。

動的エージェントのアプリケーション:

Spring の AOP

トランザクションの追加

権限の追加

ログの追加

動的プロキシを実装するにはどうすればよいですか?

最初にインターフェイスを定義する必要があります。また、InvocationHandler (インターフェイスを実装するクラスのオブジェクトを渡す) 処理クラスも必要です。

もう 1 つのツール クラス Proxy があります (newInstance() を呼び出すとプロキシ オブジェクトを生成できるため、これをプロキシ クラスと呼ぶのが一般的です。実際には、これはプロキシ オブジェクトを生成する単なるツール クラスです)。

InvocationHandler を使用してプロキシ クラスのソース コードを結合し、それをコンパイルしてプロキシ クラスのバイナリ コードを生成し、ローダーを使用してロードし、インスタンス化してプロキシ オブジェクトを生成し、最後に戻ります。

Java 関連テクノロジの詳細については、

java ビデオ チュートリアル 列にアクセスして学習してください。

以上がJava リフレクションのよくある面接の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター