中級Javaの顔の質問

1、Javaヒープとスタックの違いは何ですか?

各スレッドは、ローカル変数、メソッドパラメータとコールスタックを格納するための独自のスタックメモリを有し、他のスレッドにスレッドに格納された変数が表示されていません。ヒープメモリの公共エリア内のすべてのスレッドで共有されます。オブジェクトは、独自のスタックにヒープキャッシュから取得するスレッドの効率を高めるために、ヒープ上に作成され、それは複数のスレッドが変数を使用する場合は、揮発性の変数が遊びに来て、それがメインスレッドから要求する問題を引き起こす可能性があります変数の格納された値を読み込みます。

:(ヒープオブジェクト)

他の新しい手段によりヒープメモリまたは定数プール(文字列定数、一定の基本データ型)に割り当てられている参照型の変数は、作成される必要があります。

主な役割は、メモリヒープ(新しい)オブジェクトストレージの操作を作成することです。

(主オブジェクト、遅いアクセス速度、動的メモリ割り当てを格納するために使用される、生存は、事前に決定する必要はありません実行することができ)

:()、オブジェクト参照変数を変数基本データ型スタック

変数の基本データ型(int型、ショート、ロング、バイト、フロート、ダブル、ブール、文字、など)と、スタックメモリ上に確保されたオブジェクト変数を参照、変数が自動的にスコープの外に放出されます。

2、@Scopeによって達成される、いくつかあり、スコープの春には、ノート:

(1)シングルトン:豆スプリング、スプリングこのデフォルト設定は、例えば共有の完全な容器の容器の一例に過ぎません。

(2)プロトタイプ:各呼び出しは、新しいBeanインスタンスを作成します。

(3)要求:Webプロジェクト、すべてのHTTP要求は、新しいBeanインスタンスを作成します。

(4)セッション:Webプロジェクト、各HTTPセッションは、新しいBeanインスタンスを作成します。

(5)GlobalSession:これはそれぞれに、ポータル・アプリケーションでのみ有用である新しいグローバルhttpセッションBeanインスタンスを作成します。

5、春のトランザクション伝播の振る舞い

事務のいわゆる拡散挙動は、現在のトランザクションの開始前に、トランザクションコンテキストがすでに存在して、その後、いくつかのオプションがある場合は、トランザクショナルアプローチの実行動作を指定できることを意味します。動作定義TransactionDefinitionの伝搬定数は、次のいくつかを表しあって

TransactionDefinition.PROPAGATION_REQUIRED:現在のトランザクションが存在する場合は、トランザクションに追加され、トランザクションなした場合、新たなビジネスを作成します。これがデフォルト値です。
TransactionDefinition.PROPAGATION_REQUIRES_NEW:現在のトランザクションが存在する場合は、保留中、現在のトランザクションを入れて、新しいトランザクションを作成します。
TransactionDefinition.PROPAGATION_SUPPORTSは:現在のトランザクションが存在する場合は、トランザクションに追加され、何のトランザクション、非トランザクション方法場所は引き続き実行されていない場合。
TransactionDefinition.PROPAGATION_NOT_SUPPORTED:非トランザクションの実行は、現在のトランザクションが存在する場合は、保留中の現在のトランザクションを置きます。
TransactionDefinition.PROPAGATION_NEVER:非トランザクションの実行、現在のトランザクションが存在する場合は、例外がスローされます。
TransactionDefinition.PROPAGATION_MANDATORYは:現在のトランザクションが存在する場合は、トランザクションに追加され、トランザクションなした場合、例外がスローされます。
現在のトランザクションが存在する場合、現在のネストされたトランザクションのトランザクションとして実行するためのトランザクションを作成し、トランザクションなしている場合、値はTransactionDefinition.PROPAGATION_REQUIREDと同等です:TransactionDefinition.PROPAGATION_NESTED。

6、Springの宣言的トランザクション管理の取り組みはどのレベルですか?

Struts2のクラスレベルであり、春はメソッドレベルであります

春のトランザクションは、プログラムと宣言的トランザクション総務に分けることができます

7、Struts2の違いが春MVC:

参考:   http://blog.csdn.net/chenleixing/article/details/44570681

①Struts2のクラスレベルは、メソッドレベルの傍受、要求コンテキストに対応するクラスを傍受さSPRINGMVC

②SpringMVC方法に実質的に依存し、排他的な要求応答データ

原則的に、それはより多くのメモリ集約的であるので、③Struts2のので、スレッドの安全性を確保するために、各アクションの使用を供給、地図へのパッケージのライフサイクルなどの各パッケージ要求、変数のリクエスト、セッションサーブレットのために必要な、と

④実装機構インターセプタで、Struts2のインターセプタは、独立したAOPの方法で独自のメカニズム、SpringMVCを持っています

⑤SpringMVCの入り口は、サーブレットで、フィルタはStruts2のです

⑥SpringMVCは、Ajaxを統合しました

⑦SpringMVCの検証サポートJSR303、治療は比較的より柔軟であるが、より複雑なStruts2の検証、あまりにも取り乱した感じ

⑧春のMVCと春はシームレスです。このプロジェクトの管理とセキュリティからStruts2のよりも高くなっています

⑨Struts2のは、より多くのOOPプログラミングのアイデアに沿って、SpringMVCはより慎重で、サーブレットに広がります

Struts2のより⑩SpringMVCの開発効率とパフォーマンス

8、ArrayListのとLinkedListの間の差は実質的に次のように

1.ArrayListデータ構造は動的配列、LinkedListのベースリンクリストデータ構造に基づいて実現されます。 
LinkedListのは、ポインタを移動するためのランダムアクセスのために2.取得および設定、ArrayListのは、LinkedListのより良い感じ。 
新しい3.とArrayListのデータを移動するための操作は、追加や削除、LinedList比較優位削除します。

9、ArrayListには、ベクターは、次の点との間の主な違いです。 

(1):ベクターは、スレッドセーフで、同期したソースコードの多くは、かなりのArrayListよりも、見ることができるあります。効率のベクターおよびArrayListの結果を比較することはできません。 

(2):ストレージ・スペースは、ベクターが二回元のデフォルト値に増加し、ArrayListの元のデフォルトを50%に増加し、不足する場合のArrayListとベクトルは、連続した線形メモリ空間です。

10、HashSetのとHashMapの差:

 

 

11、HashMapのやHashtableの差:

HashMapのやHashtableのは、Mapインタフェースを実装したが、判決はまず、それらの間の区別の前に使用するかを把握しなければなりません。主な違いは以下のとおりです。スレッドの安全性、同期(同期)だけでなく、スピード。

  1. ハッシュテーブルとほぼ同等のHashMap、HashMapの非同期を除き、ヌル(NULLキー(キー)と値に許容されるハッシュマップ(値)、およびハッシュテーブルではない)を受け入れることができます。
  2. ハッシュテーブルが同期されている間ハッシュテーブルは、スレッドセーフであることを意味し、非同期ハッシュマップ、複数のスレッドは、ハッシュテーブルを共有することができ、そして適切に同期しない場合、複数のスレッドがHashMapを共有することはできません。Java 5のは、それはハッシュテーブルよりも良いスケーラビリティ代替ハッシュテーブルである、のConcurrentHashMapを提供します。
  3. もう一つの違いは、HashMapのイテレータである(イテレータ)イテレータは、フェイルファストで、列挙子Hashtableのイテレータは、フェイルファストされていません。別のスレッドがあるときにはHashMapの構造を変更する(要素を追加または削除)、それはConcurrentModificationExceptionをスローしますが、反復子自体のremove()メソッドは、要素を削除しませんConcurrentModificationExceptionが例外をスローします。しかし、これは、特定の動作はJVMによっては、発生しません。これはまた、列挙とイテレータの間の差です。
  4. ハッシュテーブルは、スレッドセーフ、シングルスレッド環境でので、同期されているので、HashMapのより遅いです。あなたは、単一のスレッドを同期する必要がない場合は、HashMapの使用パフォーマンスはハッシュテーブルよりも優れています。
  5. HashMapのは、地図の経時要素の順序が変更されていない保証するものではありません。

13、春のBeanのライフサイクル:

  • 豆の確立、定義ファイルでたBeanFactory豆を読み込み、様々な例を生成し、
  • セッターインジェクション、ビーンは、依存性注入を行っ属性
  • インターフェースはメソッドsetBeanName実行され、達成される場合、)(setBeanNameをBeanNameAware
  • インターフェースはメソッドsetBeanFactory実行され、達成される場合、)(setBeanFactoryをBeanFactoryAware
  • processBeforeInitializationのBeanPostProcessor()は、関連するプロセッサと、このインスタンスの前にprocessBeforeInitializationビーン初期化()メソッドを実行します
  • 用afterPropertiesSet実行されるインターフェースが実現される場合InitializingBean afterPropertiesSet()、()
  • initメソッドで定義されたBean定義ファイル
  • processAfterInitializationのBeanPostProcessors()は、関連するプロセッサと、このインスタンスの前にprocessAfterInitializationビーン初期化()メソッドを実行します
  • コンテナが閉じられているときDisposableBean年代は、)(Beanクラスがインタフェースを実装している場合、それは破壊するために実行される()メソッドを破壊します
  • Bean定義ファイルには、容器が閉じられたときに、定義ファイル方法ビーンで定義された「Destoryは-法」を使用することができる、破壊法を定義します

ライフサイクルspringbean単純な答え:

(1)(必要)コンストラクタオブジェクトの例

プロパティの割り当てのために(2)アセンブリ(オプション)

(3)補正(オプション)(容器 - コントロールクラスとコンポーネント - コールバック・クラス)

(4)初期化(INIT-メソッド= "")

(5)レディ

(6)销毁(破壊法=」「)

15、springmvcライフサイクル:

1A)クライアント限り、リクエストがフォームのweb.xmlに準拠して、HTTPリクエストを送信し
、それはのDispatcherServletによって、その後.action *設定されたファイル
に処理。

1B)のDispatcherServletは、次に、HTTP要求マッパに委託
処理することに対応するアクションHTTP要求にオブジェクト

2)顧客マッパーhttpリクエストを、その後の<bean名=「/ hello.actionを比較し
、一致が正しい場合は、プログラマへのHTTPリクエストがアクションを書くために

ビジネスメソッドを実行する3)アクション、名前の最後のリターンのModelAndView
伝送ビューの論理名に、データとビューをカプセル化するオブジェクト

4)のModelAndViewはDispatcherServletのに応答してなどのオブジェクト

5)その後のDispatcherServletはのModelAndViewオブジェクトを受け、
それが何を意図して、我々は名前の委託を受けているされている論理ビューの名前を知らない
のModelAndView特定のターゲット解析するオブジェクト・ビューパーサ
コンテンツを

6)コンテンツパーサビューを、再度のDispatcherServletをいう
コアコントローラは、特定のに要求を転送するとき、コアコントローラ
データを取得し、表示するページ、およびユーザへの表示

16、クロスドメインを解決するためにどのようにAJAX?

参考:http://blog.csdn.net/u014727260/article/details/72793459

(バックグラウンド動作を介して)①プロキシ

②JSONP(追加応答ヘッダ、クロスドメインを可能にします)

addHeader(「アクセス制御 - 許可 - 原産地:*」); //すべてのソースへのアクセスを許可 

addHeader( 'アクセス制御 - 許可-方法:POST、GET'); //アクセス方法が可能

③実施形態のAjaxでのデータ型は、「JSONP」に変更しました

17、ユーレカと飼育係の違いは?

①連携ツールAP特性を分散させ、分散使用ユーレカ発見以上でサービスを行う(利用可能なホスト上のネットワーク障害の飼育係が返すことができませんでした)

②飼育係の技術は、より成熟し、より多くの情報

③ユーレカ。マイクロサービスの登録と発見に専用スプリングクラウドサービスの下のコンポーネントであり、ユーレカは、サービスの発見のために設計されています

④飼育係。分散ソフトウェアの一貫性を確保するために使用されます。サービスの発見と設計のために登録されますが、その性質は、二次サービス発見レジストリベールに発展することができません

18、SpringCloudコンポーネントは何ですか?

春の雲は、関係するマイクロサービスアーキテクチャの開発のための構成管理を提供するサービス管理、メカニズム、インテリジェントなルーティング、マイクロブローカー、制御バス、ワンタイムトークン、グローバルな一貫ロック、リーダー選挙、分散セッション、クラスタ状態管理操作を融合します開発への簡単な方法。

コンポーネント列:

  • 春クラウド設定:Gitのコンテンツを使用したスト​​レージ構成をサポートするための構成管理ツール、クライアント構成情報の更新をサポートするために構成された外部ストレージ・アプリケーションのサポートは、暗号化と復号化コンテンツを構成します
  • スプリングクラウドバス:クラスタ(例えば、構成変更イベント)のイベントメッセージ・バスと伝播状態の変化は、熱スプリングクラウド構成の展開を達成するために組み合わせることができます。
  • 春クラウドNetflixの:ようにユーレカ、Hystrix、Zuul、Archaiusとを含むパッケージが提供する開発ツールのさまざまなNetflixのコンポーネント。
  • Netflixのユーレカ:中間層サーバーのクラウドのフェイルオーバーと負荷分散を達成するためのサービスレジストリ、サービス登録およびサービス発見メカニズムの実現を含めたコンポーネントベースのサービス管理サービスの残りの部分、。
  • NetflixのHystrix:フォールトトレラント管理ツールは、遅延や失敗の大きなフォールトトレランスを提供するために、ブレーカモード、ノード制御サービスを実現しています。
  • Netflixのリボン:サービスコールクライアントの負荷分散コンポーネント。
  • Netflixの装う:宣言型サービスとHystrixリボン呼び出し側コンポーネントに基づきます。
  • NetflixのZuul:マイクロサービスゲートウェイ、アクセスおよび他のサービスをフィルタリング、動的ルーティングを提供します。
  • NetflixのArchaius:構成管理APIは、プロパティ、スレッドセーフな構成操作、ポーリングフレーム、コールバックメカニズムや他の機能の動的な型を提供し、構成管理APIのシリーズが含まれています。
  • クラウドFoundryのための春の雲:CloudFoundryのOAuth2によるサービスへのバインディングの合意は、CloudFoundryは、VMwareは、オープンソースのPaaSクラウドプラットフォームを立ち上げています。
  • 春クラウドスルース:採取キット、パッケージDapperの、ZipkinとHTRACE操作をログに記録します。
  • 春のクラウドデータフロー:大規模なデータ操作ツール、コマンドラインからの操作データ・ストリーム。
  • 春のクラウドセキュリティ:セキュリティツールキットは、主のOAuth2を意味し、アプリケーションのセキュリティコントロールを追加します。
  • 春クラウド領事:領事が操作をカプセル化し、領事は、それがシームレスにドッカーコンテナと統合することができ、サービスディスカバリおよび構成ツールです。
  • 春クラウド飼育係:サービスの登録と発見飼育係の方法を使用するための飼育係の業務ツールキット。
  • 春のクラウドストリーム:データフローオペレーション開発キット、メッセージ送信やRedisの、うさぎのパッケージ、カフカが好きです。
  • 春クラウドCLI:春ブーツCLIに基づいて、あなたはすぐにコマンドラインのクラウドコンポーネントを作成することができます

おすすめ

転載: www.cnblogs.com/xzjf/p/11443398.html