Javaの基本的な面接の質問と回答(B)

容器

18. Javaコンテナには何を持っていますか?

一般的なコンテナカタログ:

 

19.コレクションとコレクションの違いは何ですか?

  • java.util.Collectionは、インターフェースの集合(クラスのセットへのトップレベルインターフェース)です。これは、インターフェイスメソッドの共通セットは、基本的な操作のためのオブジェクトを提供します。Collectionインタフェースは、Javaクラスライブラリでは、多くの具体的な実装を持っています。Collectionインタフェースの意義は、リストと設定を継承するために直接インタフェースを持っている特定のコレクションのさまざまな操作の統一モードを最大化するために提供されます。

  • コレクションソートする要素のコレクション、検索、および他のスレッドセーフな操作のための静的メソッドのシリーズを提供ツールクラス/クラス・ヘルプのコレクションです。


20.リスト、セットの違いは何ですか、その地図?

 

21. HashMapのやHashtableの違いは何ですか?

  • ハッシュマップ方式を除去ハッシュテーブルを含んでいる、しかしのcontainsValue()とのcontainsKey()メソッドです。

  • ハッシュテーブルの同期、およびHashMapのは、非同期強制ハッシュテーブル高効率です。

  • HashMapのは、空のキーを許可し、ハッシュテーブルは許可されていません。

 

22.どのようにHashMapやTreeMapのを使用することを決定していますか?

挿入、削除、要素、このような操作を見つけるの地図、HashMapのが最良の選択です。あなたは、キートラバースの順序付きコレクションを必要とする場合は、TreeMapのは良い選択です。あなたのコレクションのサイズに基づいて、そしておそらく速くなりますHashMapのに要素を追加し、TreeMapのに注文したキーを横断するマップを変更します。

 

原則の実現に関する23のHashMapの話?

HashMapの概要:HashMapの地図は非同期インターフェイスのハッシュテーブルの実装です。この実装は、オプションのマップ操作の全てを提供し、使用ヌルヌル値及びキーを可能にします。このクラスは、マッピングの順序を保証するものではありません。特に、それは順序が永遠に続くことを保証するものではありません。 

ハッシュマップデータ構造:Javaプログラミング言語、基本的な構造は2種類あり、一つのアレイ、さらにアナログポインタ(参照)であり、全てのこれらのデータ構造は、2つの基本的な構造に構築することができるだけでなく、ハッシュマップ例外ではありません。HashMapのは、実際には「ハッシュリスト」データ構造、即ち、アレイ及びリストの組み合わせです。

私たちは、キーのハッシュコードに基づいて、すべて再計算されたハッシュ値の最初のプット要素にHashMapを行くと、その場所の配列が他の要素のために保存されている場合、配列(インデックス)で要素の位置に値するハッシュを根絶し、リスト上の要素のこの位置は形式で格納され、新たにチェーンの頭部に加え、第一鎖テールに加えた。この位置は配列要素でない場合、要素は、直接配列の位置に置くことができます。

個以上のリストのデータノードは、リストがO元のO(N)から、クエリ効率を改善するために赤黒木に変換される場合、最適化の実現にJDK 1.8 HashMapを注(LOGN)

 

HashSetの実装原理について24話?

  • 基本となる実装HashSetのHashMapのことで

  • HashSetの値は、キーのHashMapに保存されています

  • 統一PRESENTのHashMapの値

 

25. ArrayListのとLinkedListのがあるの違いは何ですか?

基礎となるデータ構造は双方向循環リンクリストLinkedListのは、ランダムアクセスをサポートしていないですしながら、最も明白な違いは、配列ArrrayListで、ランダムアクセスをサポートする基礎となるデータ構造です。LinkedListのはO(N)である添字要素は、ArrayListの時間複雑度は、O(1)です。

 

26.どのように配列とリストの間の変換を実現するには?

  • リストは配列に変換:ToArrayメソッドは、ArrayListのを呼び出します。

  • 配列はリストに変換する:asListメソッドを呼び出すの配列を。


27. ArrayListのとベクトルがある違いは何ですか?

  • ベクターは、ArrayListを同期しますが、されていません。あなたがリストへの変更の繰り返しを行うことを求めている場合は、あなたはCopyOnWriteArrayListとを使用する必要があります。 

  • それが過負荷になっていない、同期しているため、ArrayListをよりベクトル速いです。 

  • 我々は簡単に同期リストを取得し、読み取り専用のリストをするためにコレクションユーティリティクラスを使用することができますので、ArrayListのは、より一般的です。

 

違い28.配列とArrayListのは何ですか?

  • アレイの基本的なタイプが、唯一のArrayListオブジェクトを受信しながら、オブジェクトを収容することができます。 

  • アレイのサイズを指定すると、サイズがArrayListに固定されています。 

  • アレイは、その上、このようなのaddAll、のremoveAllイテレータとして、その汎用性のArrayListを提供し、しません。

 

29.キューの世論調査との差()とremove()は何ですか?

失敗した場合に例外をスローします()ポーリング()とremove()は、キュー要素から削除されますが、poll()は空を返します障害が発生した時点で要素を取得しますが、削除します。

 

30.コレクションクラス、スレッドセーフ?

  • ベクトル:あまり効率的で、今は推奨されませんので、それは、より多くのArrayListよりも同期メカニズム(スレッドセーフ)です。Webアプリケーションでは、特にフロントページ、しばしば非効率的(ページ応答率)が優先事項です。

  • statck:Stackクラス、最後のアウト。

  • ハッシュテーブル:スレッドのハッシュマップよりも安全。

  • 列挙:列挙、イテレータの同等。

 

31.どのようなイテレータイテレータいますか?

反復子は、それがオブジェクトである、デザインパターンであり、それは選択された標的配列を横断することができ、開発者は、シーケンスの基本構造を理解する必要はありません。それは小さな価格を作成したので、イテレータは、多くの場合、「軽量」オブジェクトと呼ばれています。

 

32.イテレータどのように使用するには?特徴は何ですか?

Javaのイテレータ機能は比較的単純で、かつ一方向にのみ移動することができます。

(1)コンテナはIteratorを要求する()を返し、イテレータを使用してください。場合のシーケンスの最初の要素を返す最初のコールイテレータnext()メソッド、。注:イテレータ()メソッドは、java.lang.Iterableインタフェースはコレクションを継承されています。

(2)シーケンスの次の要素を取得するために()次を使用。

(3)配列の要素があるかどうかを確認するのhasNext()を使用。

(4)(削除使用して)除去イテレータ新しい要素を返します。

イテレータJavaのイテレータは、反復子リストの設計のための最も簡単な実装は、より多くの機能を持っている、それはあなたもリストから要素を挿入し、削除することができ、両方の方向にリストをトラバースすることができます。


33.イテレータと反復子の違いは何ですか?

    • イテレータは、SetとListのコレクションを反復処理するために使用されるが、唯一の反復子のリストをトラバースするために使用することができます。 

    • コレクションのイテレータは前方にのみトラバースすることができ、反復子の両方の前に後方にあることを。 

    • 反復子がイテレータインターフェイスを実装し、そのように他の機能を含む:ように、要素を置き換えるために要素を追加する要素の前と後のインデックスを取得し、および。

おすすめ

転載: www.cnblogs.com/donleo123/p/11621027.html
おすすめ