検索
ホームページJava&#&面接の質問長年の開発経験からまとめられた Java 面接の質問 - (7)

長年の開発経験からまとめられた Java 面接の質問 - (7)

1. Hibernate の悲観的ロックと楽観的ロック

(その他のインタビューの質問に関する推奨事項: Java インタビューの質問と回答)

Hibernate 悲観的ロック: データがロードされるときにデータをロックします。ロックが解放されるまで、他のユーザーは変更を加えることができます。利点: データの一貫性が非常によく維持されます。欠点: 複数のユーザーによる同時アクセスには適していません。複数のユーザー。ロックされたリソースが解放されないと、そのリソースは他のユーザーによって変更されず、無期限の待機が発生しやすくなります。

Hibernate のオプティミスティック ロック: データが変更されると、データがバージョンまたはタイムスタンプと比較され、ロックを実現するためにデータが一貫しているかどうかが確認されます。メリットは比較的良いです。

2. Hibernate の 3 つの状態

一時状態: 新しいオブジェクトはまだ永続化されておらず、まだセッションにもありません

永続状態:すでに永続化されており、セッション キャッシュに追加されているこの状態のオブジェクトは永続オブジェクトと呼ばれます;

フリー状態: 永続オブジェクトはセッション オブジェクトから分離されています。セッション キャッシュがクリアされたオブジェクトなど。特徴: すでに永続化されていますが、セッション キャッシュには存在しません。この状態のオブジェクトはフリー オブジェクトと呼ばれます;

(関連チュートリアルの推奨事項: java 入門チュートリアル)

3. Hibernate と ibatis の違い

ibatis: オープン ソース プロジェクトは開始が簡単で、開発が柔軟で、開発ワークロードが重いです。ほとんどのプロジェクトは独自の SQL と多くの構成ファイルを作成します。

Hibernate: オープン ソースオブジェクト リレーショナル マッピング フレームワーク、開発効率は高いが SQL に干渉できない、最適化の程度は低い

#4. mybatis 接続プールについて話す

一般的な mybatis接続プールには、ファクトリ モードの DataSource インターフェイスを通じて作成されるネイティブ、c3p0、および dbcp が含まれます。その実装には、対応するファクトリ クラス オブジェクトを通じて取得できる、unpooledDataSource (接続プールのないデータ ソース) および PooledDataSource (接続プールのあるデータ ソース) が含まれます。 ;

PooledDataSource を例に挙げます 最初: データベースに接続するためのオブジェクトが必要で、SQL ステートメントの実行時に java.sql.Connection 接続オブジェクトを取得します

2 番目: PooledDataSource データソースは、接続プール オブジェクトを PooledConnection オブジェクトにラップし、それを PoolState 型コンテナーに入れて維持します。 MyBatis は、接続プール内の接続プールをアイドル状態 (idle) とアクティブ状態 (active) の 2 つの状態に分割します。PooledConnection オブジェクトは、PoolState コンテナーの 2 つの List コレクション、idleConnections と activeConnections に格納されます。アイドル状態の場合、PooledConnection オブジェクトは idleConnections コレクションに配置され、現在アイドル状態で使用されていない PooledConnection コレクションを示します。PooledDataSource の getConnection() メソッドが呼び出されると、最初に PooledConnection オブジェクトがこのコレクションから取得されます。 java.sql.Connection オブジェクトが使い果たされると、MyBatis はそれを PooledConnection オブジェクトにラップし、このコレクションに置きます。

アクティブ状態では、PooledConnection オブジェクトは activeConnections という名前の ArrayList に配置され、現在使用されている PooledConnection コレクションを示します。PooledDataSource の getConnection() メソッドが呼び出されると、最初に idleConnections コレクションから取得されます。 PooledConnection オブジェクト、そうでない場合は、コレクションがいっぱいかどうかを確認します。そうでない場合、PooledDataSource は PooledConnection を作成し、このコレクションに追加して、戻ります;

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

java コース

)

5. SpringMVC の動作原理

ユーザーがリクエストを送信すると、リクエストはフロントエンド コントローラー DispatcherServlet によってキャプチャされインターセプトされます。 ##DispatcherServlet は HandlerMapping を呼び出して処理します ハンドラー マッピング管理オブジェクトは Handler プロセッサを取得します;

DispatcherServlet は Handler に応じて適切なアダプター HandlerAdpter を取得し、HttpMessageConveter は要求情報を指定された応答オブジェクトに変換します;

アダプターを使用して、リクエストパラメーターを入力します。ハンドラーに到達した後、Spring はデータ変換、データ検証、データフォーマット操作のためにハンドラー (コントローラー) の実行を開始します。

ハンドラーが実行された後、ModelAndViewオブジェクトが DispatcherServlet に返されます。

返された ModelAndView に従って、適切な ViewResolver ビュー リゾルバーを選択し、ModelAndView で指定されたビューを見つけます。

ViewResolver は、Model と View を組み合わせて表示ページをレンダリングします。

以上が長年の開発経験からまとめられた Java 面接の質問 - (7)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はcsdnで複製されています。侵害がある場合は、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ヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、