1、IOCの概念で春
IOCは、それは制御の反転と依存性の注入を記載しなければならない言及しました
制御の反転:私たちは、オブジェクトを使い果たした後、もともと私たちは、それが反射によってオブジェクトを作成するために、今、私たちが行う春のコンテナ引き渡しオブジェクトの破壊を作成し、オブジェクトが作成されたときに、手動でオブジェクトを作成し、そのオブジェクトのコンストラクタメソッドを呼び出す必要があります破壊されました。
依存性の注入:通常のサービスモジュールは、我々はビジネスコードを完了すると、ここでのみ通知方法スプリングが別のオブジェクトを呼び出す必要があり、ビジネス・ロジックを完了するために2つの以上のオブジェクトを呼び出す必要がある、それは春のようになります私たちがコールするために、ここで注入の依存オブジェクトとして注入の例は、待っています。コンストラクタインジェクション、セッター注入法とインターフェース注入:オブジェクトの3つの方法を注入しました
2、BENAのデフォルトのスコープ
豆は、5つの値の範囲(scope属性制御)があります。
シングルトン:単一の実施形態では、それがデフォルトです
プロトタイプ:そのようなあなたは、このプロパティを設定する必要があり春は時間のアクションStruts2のを引き継ぐましょうなど、複数の場合、
リクエスト:リクエストと転送要求
セッション:セッションスコープされます
globalsession:グローバルな範囲は、図面では、そのような豆などは、このプロパティを必要とする複数のサーバ間で同じ時間を共有する必要があります。
デフォルトではシングルトンなので、春には、デフォルトの例では、単一のオブジェクトであります
3、概念およびメインインデックス構造、ハッシュインデックス、及び比較B +ツリーインデックス内のインデックスの役割は、MySQL
インデックス:素早く必要なデータ・ストレージ・スペースにデータベース・テーブルまたはビューにアクセスするために使用されるデータ構造です。
役割:
①データの検索時間を短縮
②データの一意性を確保するために、
参照整合性の前に表③テーブル
④は、パケット、検索時間の発注を削減します
(1)、INDEX(普通索引):表をALTER 'TABLE_NAME' はINDEXのINDEX_NAME( 'COL')をADD
任意の制限なしの最も基本的な指標、
(2)、UNIQUE(唯一索引):表 'TABLE_NAME' をALTER( 'COL')UNIQUEを追加
そして、「一般的な指標は、」類似し、異なっている:索引列の値は一意であるが、自由な値を許可する必要があります。
(3)、PRIMARY KEY(主键索引):表をALTER 'TABLE_NAME' PRIMARY KEYを追加( 'COL')
特別なユニークなインデックスがあり、NULL値を許可していません。
(4)、FULLTEXT(フルテキストインデックス):FULLTEXTをADD TABLE 'TABLE_NAME' のALTER( 'COL')
専用MyISAMとInoDBのために、より大きな、フルテキストインデックスのデータは、時間がかかり、スペースです
複合インデックス:索引INDEX_NAMEを追加TABLE 'TABLE_NAME' をALTER( 'COL1'、 'COL2'、 'COL3')
さらに、複合インデックスを作成することができますmysqlのの効率を向上させるためには、「最も左接頭辞」の原則に従ってください。複合インデックスを作成すると、最も一般的な(周波数)の制限が一度デクリメントし、左側のコラムを行うべきです。一番左の分野で使用される複合インデックスは、インデックスに使用することができます。COL1、col1col2、col1col2col3 3つのインデックスの確立に相当
インデックスクエリは、変更操作が遅くなります、削除、データの増加、高速になります後
ハッシュインデックス:ハッシュハッシュ構造の分布、およびキーがあるため、すぐに記録を照会 - 値が対応しています。しかし、それはまた、この範囲クエリおよびソートに使用すべきではありません
B +ツリーインデックス:B +ツリーインデックスデータすべてのリーフノードであり、かつ、シーケンシャルアクセスポインタを増加させ、各ノードは、隣接するリーフリーフノードへのポインタを有しています。これは、例えば、それらが発見されたキー18に49 18からのすべてのデータレコードのクエリは、限りすべてのデータノードにアクセスするために横断することができるノードとして及びポインタの順に沿って、非常に範囲を改善する、効率範囲を改善するために行われますクエリ効率。
4、スレッド作成モード、フレームスレッド、スレッドプールの概念、スレッドプールは何?スレッドプールのスレッドプールの植物の種類は何ですか?スレッドプールのパラメータ
(1)、継承Threadクラス
(2)、Runnableを実装
(3)、FutureTaskによってラッパーを作成するために呼び出し可能なスレッドライン・インタフェースを実現するために
(4)ExecutorServiceの、コーラブルを使用して、今後はそのリターン結果スレッドを達成します
JDK1.5以降に導入さマルチスレッドフレームワークエグゼキュータ、
スレッドプールは、頻繁にもたらし、コストを削減するために、スレッドの作成と破壊と資源の消費量を使用したスレッドの使用パターン、です。
スレッドの一定数を作成することにより、ので、彼らは常に新しいタスクの到着を待って準備ができているが、任務の終了後にスタンバイに再び戻ってくることを継続します。
このスレッドプールのデザインのアイデアの中核である、「多重スレッドの作成と破棄のオーバーヘッドコストがスレッドを償却。」
糸道を作成するタスクと比較して、スレッドプールを使用することの利点は、以下の点に反映されます。
(1)、資源消費のコストをもたらすために、スレッドを作成するために、重複やオーバーヘッドを避けるために、
(2)スレッドの作成を待たずにタスク、スレッドの実行の直接選挙にタスクの応答速度を向上させます
(3)、統一割当とスレッド管理だけでなく、統一された監視およびチューニングを容易にします
あなたがスレッドプールスレッドプールのスレッドに複数のタスクを送信することができ、本質的に非同期タスクのインターフェースを実現するために、スレッドプールを達成することはスケジューリングタスクの選択に責任があります。
Javaは、それぞれ、エグゼキューで4つのスレッドプールを提供しています。
[newFixedThreadPool()方法]
この方法は、返しスレッドの固定数をスレッドプール内。スレッドプールのアイドルスレッドが、それはすぐに実行された場合は、新しいタスクの提出があったとき、スレッドプール内のスレッドの数は、常に同じです。
アイドルスレッドが存在しない場合は、新しいタスクが一時的にタスクキューに格納され、アイドル状態にスレッドがあり、それはタスクキュー内のタスクを処理します。
[NewSingleThreadExecutor()方法]
このメソッドは、返すだけのスレッドスレッドプールのを。
複数のマルチタスクは、スレッドプールに提出されている場合は、スレッドがアイドル状態になるまで、タスクは、タスクを実行するための最初のアウトオーダー第一に、タスクキューに保存されます。
[newCachedThreadPool()方法]
このメソッドは、返す実際の状況とスレッドの数を調整することができ、スレッドプールのスレッドプール内のスレッドの不確か数が、アイドル状態のスレッドを再利用できる場合は、スレッドの優先使用を再利用することができています。すべてのスレッドが働いている場合は、新しいタスクが処理タスクが作成された新しいサイトを提出するがあります。現在のタスクのすべてのスレッドが終了すると、それは、スレッドプールのマルチプレックスに戻ります。
[NewSingleThreadScheduledExecutor()方法]
この方法は、ScheduleExecutorServiceオブジェクトを返す、スレッドプールのサイズは1です。
ScheduleExecutorServiceのに展開インタフェースExecutorServiceの上のインターフェイス所与の時間にタスクを実行し、定期的に実行された後一定の遅延、またはタスクを実行する次のような機能。
[ newScheduleThreadPool()方法 ]
この方法は、ScheduleExecutorServiceオブジェクトを返すが、スレッドプールは、スレッドの数を指定することができます。
int型corePoolSize
カーネルスレッドの数、スレッドプールは、スレッドがアイドル状態になっている場合でも、状態にこれらのスレッドの長期生存を保証します。設定さallowCoreThreadTimeOutは、スレッドプール内の長期生存を保証しません場合を除き、アイドル状態の後keepAliveTimeがより多くを破壊しました。
INT maximumPoolSizeの
量を超えてはならないスレッドプールの維持におけるスレッドのスレッドプールの最大数はkeepAliveTimeがより多くのアイドルされた後に破壊されるスレッド内のスレッドの最大数よりも少ないオフ書き込むためにスレッドの数よりも大きいです。
長いkeepAliveTimeが
生存時間を確保、保証の生存時間よりcorePoolSize、より多くのスレッドのアイドルよりもスレッドの数ならば、スレッドが破棄されます。さらに、それはキープアライブ単位時間単位を指します。
BlockingQueueのワークキュー
の実行を待っているのブロッキングキューストレージタスクは、ワークキューのタスクから取られたスレッドは、タスクは、待ち時間なした場合にブロックされます。キューまたは無限の容量拡張キューのサイズを制限するために渡すことができます。
ThreadFactory threadFactoryは
スレッドファクトリを作成します。
RejectedExecutionHandlerハンドラは、
リクエストプロセッサとフルに処理スレッドプールのキューを拒否します。