シリーズ228の2019年のJava面接の質問の基礎(6)

51、ArrayListのとLinkedListの差のありませんか?

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

52コレクションの並べ替えを達成するための二つの方法は何ですか?

  あなたはまた、Collections.sortによってソートすることがListなどのシーケンシャルのセット、および()を使用することができ、そのようなTreeMapのTreeSetのよう命じたセットを、使用したりすることができます。

53、Javaはどのように配列を印刷するには?

あなたは配列を印刷するArrays.toString()とArrays.deepToString()メソッドを使用することができます。アレイ法は、toString()メソッドを実装していないので、アレイのSystem.out.println()に渡され、そうであれば、配列の内容を印刷することはできませんが、Arrays.toString()は、各要素を印刷することができます。

54は、JavaはLinkedListの一方向または双方向リンクリストにリンクリスト?

  二重にリンクされたリストである、あなたはJDKのソースコードを確認することができます。Eclipseで、あなたは、Ctrlキー+ Tショートカットキーボードを使用することができるエディタで直接開きます。

55、JavaのTreeMapのは、ツリーを達成するものを使用するのですか?

TreeMapのは赤黒木の実装でのJavaの使用です。

56、ハッシュテーブルとHashMapのは、2つの違いは何ですか?

どちらのクラスは、部分的なリスト、以下、異なる多くの場所があります。

A)HashtableのレガシーJDK 1に基づいており、後にHashMapを高めています。

b)のハッシュテーブルは、よりゆっくりと、同期されますが、HashMapのは、それがより速くなるでしょう、戦略を同期されていません。

C)ハッシュテーブルは空のキーを許可していませんが、HashMapのは、ヌルキーを可能にしました。

57、HashSetのでJava、内部には、どのように動作しますか?

HashSetのは、達成するための内部HashMapを使用しています。地図は、キーと値を必要とするので、そのすべてのキー値のデフォルトがあります。HashMapのと同様に、HashSetのはHashSetのが唯一のヌルオブジェクトを格納できることを意味し、一つだけのnullキーを許可する、重複キーを許可していません。

58、ArrayListのを横断しながら、削除要素にコードの一部を書くには?

重要な問題は、インタビュアーは、ArrayListの削除()またはイテレータのremove()メソッドを使用していることです。これは、いくつかあるサンプルコード、トラバーサルのプロセスで削除要素を達成するための正しい方法であり、サンプルコードConcurrentModificationExceptionが異常発生しません。

59、我々は、コンテナクラスを作成し、その後のfor-eachループコードを使用することができますか?

  はい、あなたはあなた自身のコンテナクラスを書くことができます。あなたが歩くように強化ループでJavaを使用したい場合は、あなただけの反復処理可能なインタフェースを実装する必要があります。場合は、プロパティにデフォルトで、Collectionインタフェースを実装します。

60、ArrayListのとHashMapの過半数のデフォルトサイズ?

ジャワ7において、要素10のデフォルトサイズは、ArrayListに、HashMapのデフォルトサイズは16個の要素(2の累乗でなければならない)です。これは、Java 7とのArrayList HashMapのクラスコード断片であります:

// ArrayList.java JDK 1.7から

プライベート静的最終int型のDEFAULT_CAPACITY = 10;

//からHashMap.java JDK 7

静的最終int型DEFAULT_INITIAL_CAPACITY = 1 << 4。

//別名1

61二等しくないオブジェクトが同じハッシュコードを持っているがあってもよいですか?

ハッシュマップでの競合がある理由である同じハッシュコード値を有していてもよい2つの等しくないオブジェクトがあるかもしれません。等しいハッシュコード値は、2つのオブジェクトが等しい場合は、同じハッシュコード値を持っている必要がありますが、等しくないオブジェクト上の任意の条項が含まれていないことだけを指定しました。

62、二つの同一のオブジェクトは、それの異なるハッシュコードを持っていますか?

  不可能なハッシュコードの規定に基づき、することはできません。

63、私たちは、乱数のハッシュコード()でそれを使用することができますか?

  いいえ、ので、オブジェクトのハッシュコード値が同じでなければなりません。Javaの書き換えのhashCode()メソッドの詳細な知識を得るために答えを参照してください。

64、Javaのコンパレータ、中と同等の違いは何ですか?

  Comparableインタフェース定義自然な順序のためのオブジェクト、および一般的なカスタムオーダーを定義するために使用されるコンパレータ。Comparableを常に一つだけが、オブジェクトを定義するために、複数のコンパレータの順番があるかもしれません。

65、なぜhashCodeメソッドをオーバーライドする等しいメソッドの必要性を書き換えるとき?

  仕様指定する必須ハッシュコードおよび方法を書き換える必要が等しいので、そのようなHashMapの、HashSetのような容器の数は、所定のハッシュコードと対等に依存しています。

66、私のJavaプログラムでは、私は、どのように多くのスレッド私はハンドルに3ソケットを必要としていますか?

あなたは、並列処理またはシリアル処理で参照する必要があります。

67、JavaはどのようにのByteBufferを作成するには?

バイト []バイト= 新しい バイト [10 ]。
ByteBufferのBUF = ByteBuffer.wrap(バイト)。

68、ByteBufferのを読み書きする方法でJavaの?

69、Javaはビッグエンディアンかリトルエンディアンを使用していますか?

70、エンディアンのByteBufferは何ですか?

71、ジャワ、直接および間接的なバッファバッファは、違いは何ですか?

72、Javaのメモリ・マッピングされたキャッシュ領域に何しているのですか?

73、ソケットオプションTCP NO DELAYそれは何を意味するのでしょうか?

74、TCPプロトコルおよびUDPプロトコルの違いは何ですか?

75、Javaで、ByteBufferのとStringBufferの違いは何ですか?

あなたがどのようなベストプラクティスに従うだろうとき76、Javaは、書き込みはプログラムをマルチスレッド?

a)のデバッグを助けることができるスレッド名、へ。

B)全体の方法は、同期および鍵の一部のみを同期するのではなく、同期の範囲を最小化します。

C)あなたは、揮発性と同期していない使用することを好むことができます。

そのようなBlockingQueueの、たCountDownLatchとSemeaphoreとしてスレッド間通信を実現するd)の並行処理ツールの高レベルの使用は、代わりに(待機)および(通知)。

むしろ同期のセットよりも好ましく用いる同時のE)セット。並行コレクションは、より優れた拡張性を提供します。

77、コレクションでJavaを使用するためのいくつかのベストプラクティスを言います

a)の代わりに、ArrayListのベクトルを使用しての、例えば、正しいコレクションクラスを使用していない同期リストの場合。

B)並行好ましくは、使用される一連のではなく、同期のセット。並行コレクションは、より優れた拡張性を提供します。

C)とのアクセスインタフェースを使用することは、同様に地図記憶HashMapを使用して、ArrayListの一覧ストレージを使用して、コレクションを表します。

反復処理するイテレータを使用してd)のコレクション。

e)は、一般的な使用のセットを使用する場合。

78、スレッドを使用してJavaで少なくとも5時のベストプラクティスを言います。

  この問題は、前の質問に似ている、あなたは上記の解答を使用することができます。あなたがすべき、スレッド:

a)は、スレッドの名前

B)のRunnableまたは呼び出し可能エフェクターを実行するスレッドプールを使用して、スレッドおよびタスクを分離します。

C)スレッドプールを使用します

79、ベストプラクティスの5 IOを言います

IOは、Javaアプリケーションのパフォーマンスのために非常に重要です。理想的には、アプリケーションのクリティカルパス上のIO操作を避けるべきではありません。ここでは、従うべきいくつかのJava IOのベストプラクティスは、次のとおりです。

a)は、個々のバイトまたは文字を読み取るのではなく、バッファIOクラスが使用されます。

b)はNIOとNIO2を使用して

C)閉じるストリームfinallyブロック、または試し-とリソースステートメントを使用して。

メモリマップドファイルを使用して、d)は、より高速なIOを取得します。

80は、JDBCを従うべき5つのベストプラクティスを示しています

ベストプラクティスの多くがありますが、あなたの好みに応じて例示することができます。ここではいくつかのより多くの一般的な原則は以下のとおりです。

A)データを挿入し、更新するためにバッチ操作を使用して

B)のPreparedStatement SQL例外の使用を避け、パフォーマンスを向上させます。

C)データベース接続プールの使用を

d)の列名で結果セットを取得するには、取得するインデックス列を使用しないでください。

おすすめ

転載: www.cnblogs.com/hwtnet/p/12082721.html