Javaのインタビューの質問(a)は - 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. == 等しい違いは何ですか?

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

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

3. 二つのオブジェクトのhashCode()が同じである、(等しい)も必ずしも真に、右?

ない、 Javaの所定の二つのオブジェクトには等しい(すなわち、等号()は、に評価Trueに)、ハッシュコードは、等しくなければなりません

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

4.final のJava どのような役割?

最終修正クラスがあり、最終的なクラスは継承できません

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

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

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

実際、恐らくMath.round(a)に  戻ります(ロング)Math.floor(A + 0.5D )

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

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

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

7.javaの操作文字列クラスとは何ですか?それらの違いは何ですか?

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

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

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

= "I" STRを8.String し、文字列str =新しい新しい文字列(" I " と同じでは?

ない同じ、文字列str =同じオブジェクトの定数プールはすでに文字列str =新しい新しいStringオブジェクトへの直接参照を作成もう存在しない場合は、「i」が唯一の定数プールでオブジェクトを作成していない、となります(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 非同期IOがあるNIO としても知られ、アップグレードNIO2 、非同期の非ブロッキング実装IO 、非同期IOのイベントとコールバックメカニズムに基づいた操作が。

17.ファイルそれが何であるかの一般的な方法は?

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

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

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

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

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

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

Files.size()ファイルを表示するための番号:

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

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

おすすめ

転載: www.cnblogs.com/gaojinshun/p/10777878.html