Javaのインタビューの質問 - Javaの基礎

1. JDKおよびJREの違いは何ですか?

JRE(JavaRuntimeEnvironment)、JavaプラットフォームであるJavaランタイム環境、。すべてのJavaプログラムは、JREの下で実行することができます。普通のユーザーは、唯一のJREをインストールすることができ、良い開発したJavaプログラムを実行する必要があります。

JDK(Javaの開発キット)は、開発キットとデバッグJavaプログラムをコンパイルするためのプログラムの開発者です。JDKツールを実行するためにJREを必要とするも、Javaプログラムです。JDKの独立性と完全性を維持するためには、JDKのインストール時に、JREはインストールの一部です。だから、JREファイルを格納するためのJDKのインストールディレクトリにJREというディレクトリがあります。

JVM(JavaVirtualMachine、Java仮想マシン)はJREの一部です。これは、架空のコンピュータで実現するために、様々なコンピュータ機能の実際のコンピュータシミュレーションでオンになっています。JVMはまた、対応する命令を有する、等のプロセッサ、スタック、レジスタなどの独自のサウンドハードウェアアーキテクチャを有します。Java言語の最も重要な特徴は、クロスプラットフォームの操作です。使用JVMは、オペレーティングシステム、クロスプラットフォームから独立してサポートすることです。

2. ==とequalsの違いは何ですか?

「==」比較基本データ型の値と比較した場合、比較基準タイプと比較した場合には、アドレス

メソッドがオブジェクトに定義される「等しい」、オブジェクトは、アドレス比較(リターン(この==のOBJ))であるが、システムが一般的なクラスは、コンテキストのための方法を等しく書き換えます等しいです

hashCode 3. 2つのオブジェクトが()は同じで、等しい()確かに右、本当ですか?

右、等しい二つに指定されたJavaオブジェクト(すなわち、)(等しく真と評価)、ハッシュコードは、等しくなければなりません

代わりに、彼らは必ずしも同じではない、2つのオブジェクトが同じ値を持つハッシュコード

4.finalのJavaの役割は何ですか?

最終修正クラスfinalクラスを継承することはできません

最終的な変性方法をオーバーライドすることはできません

一定の最終変性変数は、一回のみ割り当てられることができ、値が代入後に変更することができません

どのくらいに等しい5.java恐らくMath.round(-1.5)?

実際、恐らくMath.round(a)は返される(ロング)Math.floor(A + 0.5D)

等しいすべて恐らくMath.round(-1.5)-1

6.Stringは、基本的なデータ型に属していますか?

文字列は、参照データ型、8あり、Javaの基本型:バイト、int型、ショート、ロング、フロート、ダブル、文字、ブール値を。

オペレーティング7.java文字列クラスとは何ですか?それらの違いは何ですか?

文字列:文字の不変シーケンス

StringBufferの:変数の文字列が、効率が比較的低いスレッドセーフであります

StringBuider:文字の可変配列、スレッドセーフな、高効率

= "I" と文字列str =新しい文字列( "I")と同じ列strを8.String?

ない同じ、文字列str =かかわらず一定のプールメモリの「i」が唯一の定数プール内のオブジェクトを作成し、同じオブジェクトの定数プールはすでに、もはやオブジェクトへの直接参照を作成していない存在する場合は、文字列の列str =新しい文字列(「I」)定数プールは同じオブジェクトでない場合は、ヒープ上のオブジェクトを作成します。存在しない同じオブジェクトが再び定数プール内のオブジェクトを作成します

9.どのように文字列を逆にするには?

逆またはStringBufferのStringBuider()メソッドで使用することができます

一般的な方法10.Stringクラスは、それらを持っていますか?

indexOf()は:指定された文字のインデックスを返します。

charAt():指定されたインデックスにある文字を返します。

置き換え():置換文字列を。

トリム():空白文字列の両端を取り除きます。

スプリット():スプリット文字列は、分割後の文字列の配列を返します。

GetBytesメソッド():文字列型のバイト配列を返します。

長さは、():文字列の長さを返します。

toLowerCaseメソッド():小文字の文字列に変換されます。

toUpperCase():大文字に文字列を入れてください。

部分文字列():文字列を取ら。

等号():比較文字列。

11.抽象クラスは、抽象的でなければなりませんか?

抽象クラスは必ずしも抽象メソッドが含まれていませんが、抽象クラスを含む方法は、抽象クラス必見です

12.通常のクラスと抽象クラスの違いは何ですか?

抽象クラスの一般的な方法は、直接インスタンス化することはできません定義し、

抽象クラスは、抽象メソッドを直接インスタンス化することはできません定義します

 13.抽象クラスは、最終的にそれを使用して変更することができますか?

抽象クラスは最終で修飾することができない、抽象クラスは、抽象クラスを定義し、それ自体をインスタンス化することができない、最終的な変形が継承することができない場合、他のクラスの継承を与えることです

14.インタフェースと抽象クラスの違いは何ですか?

主な目的は、反復的な抽象クラスコードを軽減することであり、目的は、(抽象クラ​​スは、主に、モジュールで使用されるモジュール間の結合を減少させる、モジュール間の情報の伝送を実現するために、インターフェースモジュールとの間の接続を達成するために、インタフェースが主に使用されモジュール間)。

抽象クラスは、変数の様々なタイプを持つことができ、およびインタフェースは唯一の静的定数することができ

抽象クラスは、従来の方法を有することができ、インターフェースのみ抽象メソッドを持つことができ

抽象クラスは、親クラスから継承することができ、インタフェースは、複数の親インターフェイスを継承することができ

このクラスは、クラスを継承することができますが、複数のインタフェースを実装することができます

抽象クラスは、コンストラクタを持つことができ、インタフェースはコンストラクタを持つことができません

15.java IOストリームはいくつかに分かれていますか?

(プログラムの流れへのデータソースから)入力ストリーム(先プログラムからのフロー)と出力ストリーム:流れの方向に

(データストリーム単位操作のバイト単位の)バイトストリームと文字ストリーム(文字での操作データ):メモリ単位で分割

治療ポイント:ノードストリーム(データソースまたは宛先に直接読み取りおよび書き込み)及びプロセスフロー(直接データソースまたは宛先に接続されていないが、他のストリームは、それによって、プログラムの性能を向上させる、加工包装です)

16.BIO、NIO、AIOの違いは何ですか?

BIO:IOをブロックするブロックIOの同期は、我々は通常、簡単で使いやすいモード、低同時処理能力によって特徴付けられる伝統的なIOを、使用しているものです。

NIO:新しいIO同期非ブロックIO、IOは、多重化を達成するために、伝統的なアップグレード、クライアントとサーバーのチャネルを介して(チャネル)通信です。

AIO:またNIO2としても知られている非同期IOがアップグレードさNIOは、非同期の非ブロッキングIO、イベントベースの非同期IO操作及びコールバック機構を実装します。

17.ファイルが何の一般的な方法でありますか?

Files.exists():存在するファイルのパスを検出します。

Files.createFile():ファイルを作成します。

Files.createDirectory():フォルダを作成します。

Files.delete():ファイルまたはディレクトリを削除します。

Files.copy():ファイルをコピーします。

Files.move():ファイルを移動します。

ファイルを表示するには数:Files.size()。

Files.read():ファイルを読み込みます。

Files.write():ファイルに書き込みます。

JRE(JavaRuntimeEnvironment)、JavaプラットフォームであるJavaランタイム環境、。すべてのJavaプログラムは、JREの下で実行することができます。普通のユーザーは、唯一のJREをインストールすることができ、良い開発したJavaプログラムを実行する必要があります。

JDK(Javaの開発キット)は、開発キットとデバッグJavaプログラムをコンパイルするためのプログラムの開発者です。JDKツールを実行するためにJREを必要とするも、Javaプログラムです。JDKの独立性と完全性を維持するためには、JDKのインストール時に、JREはインストールの一部です。だから、JREファイルを格納するためのJDKのインストールディレクトリにJREというディレクトリがあります。

JVM(JavaVirtualMachine、Java仮想マシン)はJREの一部です。これは、架空のコンピュータで実現するために、様々なコンピュータ機能の実際のコンピュータシミュレーションでオンになっています。JVMはまた、対応する命令を有する、等のプロセッサ、スタック、レジスタなどの独自のサウンドハードウェアアーキテクチャを有します。Java言語の最も重要な特徴は、クロスプラットフォームの操作です。使用JVMは、オペレーティングシステム、クロスプラットフォームから独立してサポートすることです。

2. ==とequalsの違いは何ですか?

「==」比較基本データ型の値と比較した場合、比較基準タイプと比較した場合には、アドレス

メソッドがオブジェクトに定義される「等しい」、オブジェクトは、アドレス比較(リターン(この==のOBJ))であるが、システムが一般的なクラスは、コンテキストのための方法を等しく書き換えます等しいです

hashCode 3. 2つのオブジェクトが()は同じで、等しい()確かに右、本当ですか?

右、等しい二つに指定されたJavaオブジェクト(すなわち、)(等しく真と評価)、ハッシュコードは、等しくなければなりません

代わりに、彼らは必ずしも同じではない、2つのオブジェクトが同じ値を持つハッシュコード

4.finalのJavaの役割は何ですか?

最終修正クラスfinalクラスを継承することはできません

最終的な変性方法をオーバーライドすることはできません

一定の最終変性変数は、一回のみ割り当てられることができ、値が代入後に変更することができません

どのくらいに等しい5.java恐らくMath.round(-1.5)?

実際、恐らくMath.round(a)は返される(ロング)Math.floor(A + 0.5D)

等しいすべて恐らくMath.round(-1.5)-1

6.Stringは、基本的なデータ型に属していますか?

文字列は、参照データ型、8あり、Javaの基本型:バイト、int型、ショート、ロング、フロート、ダブル、文字、ブール値を。

オペレーティング7.java文字列クラスとは何ですか?それらの違いは何ですか?

文字列:文字の不変シーケンス

StringBufferの:変数の文字列が、効率が比較的低いスレッドセーフであります

StringBuider:文字の可変配列、スレッドセーフな、高効率

= "I" と文字列str =新しい文字列( "I")と同じ列strを8.String?

ない同じ、文字列str =かかわらず一定のプールメモリの「i」が唯一の定数プール内のオブジェクトを作成し、同じオブジェクトの定数プールはすでに、もはやオブジェクトへの直接参照を作成していない存在する場合は、文字列の列str =新しい文字列(「I」)定数プールは同じオブジェクトでない場合は、ヒープ上のオブジェクトを作成します。存在しない同じオブジェクトが再び定数プール内のオブジェクトを作成します

9.どのように文字列を逆にするには?

逆またはStringBufferのStringBuider()メソッドで使用することができます

一般的な方法10.Stringクラスは、それらを持っていますか?

indexOf()は:指定された文字のインデックスを返します。

charAt():指定されたインデックスにある文字を返します。

置き換え():置換文字列を。

トリム():空白文字列の両端を取り除きます。

スプリット():スプリット文字列は、分割後の文字列の配列を返します。

GetBytesメソッド():文字列型のバイト配列を返します。

長さは、():文字列の長さを返します。

toLowerCaseメソッド():小文字の文字列に変換されます。

toUpperCase():大文字に文字列を入れてください。

部分文字列():文字列を取ら。

等号():比較文字列。

11.抽象クラスは、抽象的でなければなりませんか?

抽象クラスは必ずしも抽象メソッドが含まれていませんが、抽象クラスを含む方法は、抽象クラス必見です

12.通常のクラスと抽象クラスの違いは何ですか?

抽象クラスの一般的な方法は、直接インスタンス化することはできません定義し、

抽象クラスは、抽象メソッドを直接インスタンス化することはできません定義します

 13.抽象クラスは、最終的にそれを使用して変更することができますか?

抽象クラスは最終で修飾することができない、抽象クラスは、抽象クラスを定義し、それ自体をインスタンス化することができない、最終的な変形が継承することができない場合、他のクラスの継承を与えることです

14.インタフェースと抽象クラスの違いは何ですか?

主な目的は、反復的な抽象クラスコードを軽減することであり、目的は、(抽象クラ​​スは、主に、モジュールで使用されるモジュール間の結合を減少させる、モジュール間の情報の伝送を実現するために、インターフェースモジュールとの間の接続を達成するために、インタフェースが主に使用されモジュール間)。

抽象クラスは、変数の様々なタイプを持つことができ、およびインタフェースは唯一の静的定数することができ

抽象クラスは、従来の方法を有することができ、インターフェースのみ抽象メソッドを持つことができ

抽象クラスは、親クラスから継承することができ、インタフェースは、複数の親インターフェイスを継承することができ

このクラスは、クラスを継承することができますが、複数のインタフェースを実装することができます

抽象クラスは、コンストラクタを持つことができ、インタフェースはコンストラクタを持つことができません

15.java IOストリームはいくつかに分かれていますか?

(プログラムの流れへのデータソースから)入力ストリーム(先プログラムからのフロー)と出力ストリーム:流れの方向に

(データストリーム単位操作のバイト単位の)バイトストリームと文字ストリーム(文字での操作データ):メモリ単位で分割

治療ポイント:ノードストリーム(データソースまたは宛先に直接読み取りおよび書き込み)及びプロセスフロー(直接データソースまたは宛先に接続されていないが、他のストリームは、それによって、プログラムの性能を向上させる、加工包装です)

16.BIO、NIO、AIOの違いは何ですか?

BIO:IOをブロックするブロックIOの同期は、我々は通常、簡単で使いやすいモード、低同時処理能力によって特徴付けられる伝統的なIOを、使用しているものです。

NIO:新しいIO同期非ブロックIO、IOは、多重化を達成するために、伝統的なアップグレード、クライアントとサーバーのチャネルを介して(チャネル)通信です。

AIO:またNIO2としても知られている非同期IOがアップグレードさNIOは、非同期の非ブロッキングIO、イベントベースの非同期IO操作及びコールバック機構を実装します。

17.ファイルが何の一般的な方法でありますか?

Files.exists():存在するファイルのパスを検出します。

Files.createFile():ファイルを作成します。

Files.createDirectory():フォルダを作成します。

Files.delete():ファイルまたはディレクトリを削除します。

Files.copy():ファイルをコピーします。

Files.move():ファイルを移動します。

ファイルを表示するには数:Files.size()。

Files.read():ファイルを読み込みます。

Files.write():ファイルに書き込みます。

おすすめ

転載: www.cnblogs.com/lpbk/p/11268074.html