Javaのインタビューのコレクション10件の質問

何1.Javaコレクションフレームワーク?いくつかは利点コレクション・フレームワークを言うの?

    ベクトル、スタック、ハッシュテーブルと配列:各プログラミング言語は、元のJavaバージョンのセットがいくつかのコレクションが含まれています。コレクションの普及に伴い、Java1.2は、すべてのコレクション・インタフェース、およびコレクションフレームワークのアルゴリズムを含めることを提案しました。そして、スレッドセーフを確保する上での一般的なコレクションクラスの同時使用は、Javaは長い間経験してきました。また、Javaと契約、ブロッキングインタフェースだけでなく、その実装が含まれています。次のような利点Collections Frameworkの一部は、

(1)開発コストを削減するのではなく、私たち自身のコレクションクラスを達成するためのコアコレクションの使用は。

(2)厳密なテストを介して、フレームワーククラスのセットを用いることで、コードの品質が向上します。

(3)は、供給されたコレクションJDKを使用して、コードのメンテナンスコストを低減することができます。

(4)再利用性と操縦。

2.コレクション・フレームワークのジェネリック医薬品の利点は何ですか?

    Java1.5は、一般的な、すべてのコレクションインタフェースと実装がそれを大量に使用紹介します。ジェネリックを使用すると、要素の他のタイプを追加する場合ので、それはコンパイル時に文句を言うでしょう、私たちはコレクションとして保持できるオブジェクトの種類を提供することができます。あなたはコンパイル時にエラーメッセージが表示されますので、これは、実行時に外観にClassCastExceptionを回避することができます。一般的なクリーンも、我々は明示的な変換とinstanceof演算子を使用していない、コードになります。また、バイトコード命令の無い型チェックするので、実行中に利益をもたらします。

コレクションフレームワークは何の3.Javaベースのインタフェースと?

    コレクションは、ルートレベルのインターフェイスのコレクションです。これは、その要素であるオブジェクトの集合の基を表します。Javaプラットフォームは、このインタフェースのいずれかの直接的な実装を提供していません。

    セットには、重複した要素を含めることはできませんコレクションです。このインタフェースは、抽象的な数学的モデリングのコレクションはちょうどカードのデッキのような、コレクションを表すために使用されています。

    リストは順序付きコレクションは重複要素を含むことがあります。あなたは、そのインデックスで任意の要素にアクセスすることができます。ダイナミックアレイの変換長のようなリスト。

    地図は、地図が重複キーを含めることはできませんオブジェクトの値にキーマップ:です。各キーは値までマッピングすることができます。

    いくつかの他のインターフェイスキュー、デキュー、にSortedSet、SortedMapのと反復子。

4.なぜCloneableをし、SerializableをからないCollectionインタフェースを継承していますか?

    コレクションインターフェイスは、オブジェクトのセット、その構成要素であるオブジェクトを指定します。特定のインプリメンテーションの決定のコレクションから、これらの要素を維持する方法。setなど他人が許可されていない間、例えば、いくつかの実装は、重複要素の、このようなコレクションリストを許します。コレクションは、公共のcloneメソッドを達成するためにたくさん持っています。しかし、コレクションのすべてにそれを実装するために重要ではありません。コレクションは、抽象表現主義だからです。理解することが重要です。

    特定の実現を扱う場合、唯一のクローニングまたはセマンティックな意味の順序とは役割を果たしています。したがって、具体的な実装は、それがどのようにクローンまたはの配列に、またはそれがクローンまたはシリアル化できるかどうかを決定する必要があります。

    以下の柔軟性と、より制限された結果として、すべての実装における認証のクローニングおよび配列決定、。具体的な実装では、それがクローン化され、シリアル化できるかどうかを決定する必要があります。

5.なぜ地図コレクションインターフェイスのインターフェイスを継承しませんか?

    Mapインタフェースとその実装は、フレームのコレクションの一部ですが、地図のコレクションではないにも関わらず、コレクションが地図ではありません。そのため、地図コレクション無意味連続、およびその逆。

    あなたは地図Collectionインタフェースを継承する場合は、その要素はどこ行きますか?キーと値のペアを含むマップ、または設定値のリストを提供するキーを抽出する方法、それは仕様「オブジェクトのセット」には適していません。

何6.Iteratorこと?

    Iteratorインターフェイスは、任意のコレクションをトラバースするためのインタフェースを提供します。私たちは、コレクションからイテレータイテレータインスタンスメソッドを取得することができます。イテレータは、Java Collections Framework Enumerationを置き換えます。イテレータは、呼び出し側が反復プロセス内の要素を削除することができます。

そして7.Enumeration Iteratorインターフェイスの違いは?

    列挙型は二倍の速イテレータとして、だけでなく、少ないメモリを使用します。列挙は非常に基本的ですが、また、基本的なニーズを満たすために。しかし、列挙型と比較して、イテレータはより安全、コレクションが横断しているときので、それがコレクションを変更するために他のスレッドを防ぐことができます。

イテレータは、Java Collections Framework Enumerationを置き換えます。イテレータは、呼び出し側がコレクションから要素を削除することができ、および列挙することができません。それがより明確に機能させるには、iteratorメソッド名が施さ改善されました。

8.なぜIterator.add()このメソッドのように、コレクションに要素を追加しないのですか?

    曖昧さ、イテレータ契約が発注反復を保証するものではないことが知られています。ただし、反復子がaddオペレーションを提供していない、それは繰り返しの順序を保証することです。

9.イテレータは、カーソルを移動せずに、次の要素に直接取得する方法はないのはなぜ?

    これは、イテレータの現在の実装の一番上にすることができますが、それがインターフェイスに追加された場合、継承されたそれぞれが、それを達成するために行かなければならない非常に少ないと、それは意味がありません。

10.Iteraterと反復子の違いは何ですか?

(1)当社は、SetとListのコレクションを横断するIteratorを使用することができ、反復子はリストを横断することができます。

(2)イテレータだけ両方向に反復子トラバース、前方に横断することができます。

(3)反復子インタフェース継承イテレータから、そのような、代替要素を要素を追加するなど、いくつかの追加機能を追加し、前部又は後部要素のインデックス位置を取得します。


オリジナルリンクします。https://blog.csdn.net/u010775025/article/details/79315361

itheimaGZ GET:ほかのJavaの学習教材を心配することができます

公開された731元の記事 ウォンの賞賛3 ビュー11万+

おすすめ

転載: blog.csdn.net/u010395024/article/details/104790457