[Javaの]面接の準備の基本的な部分

Javaの基礎

原因彼のインタビューの準備の質問は、あなた自身を追加し、他の人が共有して統合します!

1「の.java」ソースファイルは複数を含むことができるかどうかのクラス(ない内部クラス)?制限は何ですか?

そこ複数のクラスが、唯一つのパブリッククラスことができ、およびパブリッククラス名はファイル名と一致する必要があります。

2.Java何後藤はありませんか?

JavaはJavaで何の使用はありませんが、単語を禁じます。

&と&&の違いについて3.の話

&&&論理演算子であり、両側の表現演算子の結果が真である場合、結果はそうでない限り、それらのいずれかが偽であるように、結果が偽である、唯一真です。
&&短絡機能、すなわち、最初の式は、もはや、第二の発現偽である場合。
最初の式が偽であればなし&短絡機能が、すなわち、第二の発現は依然としてカウントされます。

4.どのようにJavaで現在の複数のネストされたループの外にジャンプするには?

外側のループのラベルの定義は、その後、ループ本体は、缶の外に、数字を破ります。

ok:
for(int i=0;i<10;i++) {
  for(int j=0;j<10;j++) {
    System.out.println(“i=+ i +,j=+ j);
    if(j == 5) break ok;
  }
}

switch文、可能なタイプの表現5.?

Javaでの式の型に切り替えて
JDK 1.6を:int型のバイト、ショート、CHAR、
JDK 1.7:バイト、ショート、CHAR、int型、文字列

6.short S1 = 1; S1 = S1 + 1; S1 = 1;?S1 + = 1短いと間違って何もありません。そこに何か問題が?

短いS1 = 1、S1 = S1 + 1、 S1 + 1型操作の自動上昇した発現、その結果がintであるので、次に短いタイプに割り当てられたS1、コンパイラが報告するエラータイプがキャスト必要。
S1 + =;短いS1 = 1の場合 1; = +所定のJava言語の演算子ので、それが翻訳を補正することが可能とJavaコンパイラの特殊な治療法であるだろう。

7.char型変数は、中国語の文字を保存することができますか?なぜ?

char型変数がUnicode文字を格納するために使用され、ユニコード符号化された文字セットは、文字を含むので、当然のことながら、char型変数文字は、それに格納することができます。しかし、符号化文字集合に含まれていない特殊なUnicode文字場合は、char型の変数には、特殊文字を格納することはできません。

数に等しい8の最も効率的な方法を計算することにより、8.2を乗じ?

2 << 3、2のn乗の積に等しいです。

9.変数のキーワードの最終修正を使用しないでください、参照オブジェクトまたは参照を変更することはできません、変更することはできないのですか?

最終的なキーワードを使用して変数を変更するとき、変数を参照するために参照し変更することができない、コンテンツオブジェクト参照変数ポイントはまだ変更することができます。たとえば、次の文:
決勝のStringBuffer StringBufferの新しい新しい= A(「不変」);
を実行文のレポートは、コンパイル時エラー:
A = StringBufferの新新(「」);
ただし、次の文は、コンパイラによって行われてもよい。
a.append( "壊れました!");

10. 「==」との間の差「に等しい()」で

「==」:メモリの最初のアドレスで2つの文字列オブジェクトの分析は同じです。
「)(等しい」:2つの値が等しい文字列オブジェクトである分析。

11. 静的変数とインスタンス変数の違いは?

構文定義の違い:旧静的変数は、staticキーワードを追加ではなく、インスタンス変数を追加する前にします。
オブジェクトのインスタンスを作成することにより、インスタンス変数を呼び出すために、呼び出すためにクラスを使用して静的変数。

12. 私は、静的メソッド内から非静的メソッドへの呼び出しを発行することはできますか?

いいえ、あなたが呼び出すためにオブジェクトを作成する必要があります。

13. int型の整数との違い

ラッパークラスのint型の整数である、整数デフォルトはnullで、デフォルト値は0 intがあります。

14. 恐らくMath.round(11.5)等しい?恐らくMath.round(-11.5)はどのくらいに等しいどのように多くの?

恐らくMath.round(11.5)は、その結果恐らくMath.round(-11.5)-11 12である結果。

15. 、保護された、スコープ官民を伝え、その差が書かれていないときにしてください

作用域    	当前类	 同一package	 子孙类	   其他package 
public		  √          √             √       	√ 
protected	  √          √         	   √      	× 
friendly	  √          √             ×      	× 
private		  √          ×             ×      	× 

16. 差過負荷とオーバーライド

オーバーロード:
同じクラス、同じメソッド名、パラメータのリストとは異なる(パラメータまたはパラメータの種類の数)、およびメソッドの戻り値と改質剤の独立。
オーバーライド:
同じメソッド名、同じパラメータリストは、改質剤は、厳密な親にアクセスすることができない(またはそのサブクラス)同じ値の型を返します。

17. コンストラクタコンストラクタをオーバーライドすることができますか?

コンストラクタコンストラクタは継承できませんので、上書きを書き換えることはできませんが、過負荷をオーバーロードすることができます。

18. インターフェースと抽象クラスの違いは?

(1)抽象クラスコンストラクタを持つことができ、インタフェースはコンストラクタを持つことができません。
(2)抽象クラスのメンバ変数は、共通有することができ、共通のメンバ変数のインタフェースが存在しない
抽象クラスは、静的メソッドを含んでいてもよい(3)、静的メソッドはインターフェースを含むことができません
(4)クラスは、複数のインターフェースを実装するが、唯一の継承でき抽象クラス。
(5)複数のインターフェースは、単一の抽象クラスによって実装することができる継承
抽象クラスはインターフェイスを実装する場合(6)、インターフェースは、抽象サブクラスで、必ずしも達成することなく抽象メソッドとして抽象クラスメソッドにマッピングすることができインターフェイスで実装方法

19. オブジェクト指向機能は何がありますか?

オブジェクト指向プログラミング言語は、カプセル化、継承、抽象的、4つの主要な機能とポリモーフィズムです。

20. Java実装で多型があるのメカニズムは何ですか?

図1は、サブクラスは、親クラス(延び)継承
2は、クラスがインターフェイス(実装)を実装します

21. 内部クラスは、クラスのメンバーがやる含む、それを参照することができますか?任意の制限はありますか?

完全に。それは制限がないことを、静的な内部クラスでない場合は!

22. 文字列は、最も基本的なデータ型ですか?

ない、java.lang.Stringクラスは最終的なものであり、したがって、このクラスを継承することはできません、クラスを変更することはできません。

23. A 文字列S =「こんにちは」; S =のS +「の世界!」;コード実行の2行は、オリジナルのStringオブジェクトの内容が最後に変更されませんか?

いいえ。文字列は、すべてのオブジェクトは不変であるように、不変(不変)クラスになるように設計されているので。このコードでは、Stringオブジェクトに原点をね、内容は「こんにちは」、その後、我々はS +オペレータにあった、そのオブジェクトのポイントに変更があったかどうかにありますか?答えはノーです。別のStringオブジェクトを指して、内容が「こんにちは!」で、元のオブジェクトはまだそれにちょうど秒この参照変数はもはやポイント、メモリ内に存在している間、この時点で、Sは、元のオブジェクトを指していません。

24. 文字列S =新新しいString(「XYZ」);いくつかの文字列を作成した2つの違いは何ですかオブジェクト??

それとも2は、「XYZ」はオブジェクトに対応し、文字列定数バッファ内のオブジェクト、一定の「XYZ」に関係なく表示された回数、バッファということです。新しい文字列はそれぞれ、それが一定の「XYZ」オブジェクトの内容に基づいて、新しいStringオブジェクトを作成し、新しいオブジェクトを作成するには、もう一度書きます。以前にフレーズを代表して、「XYZ」を使用した場合、自分自身を「XYZ」を作成していない、バッファから直接取ります。

25. 文字列、StringBufferの、StringBuilderの違いは何ですか?

文字列は、不変である
のStringBufferとStringBuilderの文字列変数。
StringBufferのは、スレッドセーフである、StringBuilderのは、スレッドセーフではありません。
StringBuilderはStringBufferの速度よりも速いです。

26. 配列には長さ()このメソッドを持っていますか?文字列がない長さ()このメソッドを持っていますか?

配列は、長さ()この方法では、長さ属性はありません。長さ()は、この方法では、文字列。

27. 次の文は、オブジェクトの総数を作成:文字列S =「」+ 「B」+「C」+「D」。

一つの目的。
文字列s = "" + " B" + "C" + "D";のSystem.out.println(S == "ABCD");
最終プリントの結果が真です。

28. 一般例外ランタイム例外と類似点と相違点は何ですか?

異常がプログラムの実行中に異常な状態が発生する可能性を示し、実行時例外は、一般的に遭遇することができる仮想マシンの異常動作を示し、共通ランタイムエラーです。ときに異常はなく、Javaコンパイラを実行するときにキャッチされない文を必要としない発生する可能性が非動作投げる例外の宣言を要求しなければなりません。

29. エラーと例外の違いは何ですか?

不可能ではないが、非常に困難な深刻な問題の場合のエラーの修復。例えば、メモリのオーバーフロー。このプログラムは、このような状況に対処するために期待することはできません。例外の設計や実装の問題という。言い換えれば、それは適切に実行した場合、状況は決して起こらなかったことを意味します。

30. あなたの最も一般的に5つの実行時例外で見を入力してください。

NullPointerExceptionが、ArrayIndexOutOfBoundsExceptionが、ClassCastExceptionが、のSQLException、FileNotFoundExceptionを、IOExceptionが...

31. どのようにJava言語の例外処理、キーワード:、キャッチ、してみてください、投げる投げ 、最終的には、それぞれ、代わってのポイントは何ですか?tryブロックでは、例外を投げることができますか?

例外得ることであるスロー
スローがスローされた
例外処理を実行するために、トライ文は例外引用符になり、あなたはまた、tryブロック新たな例外を投げることができます
キャッチすることは、彼の文章をさせて頂きます例外がある場合ということです
最終的には、例外は、ステートメントを実行するかどうか

32. JAVAスレッドを実装する方法はいくつかありますか?何が?ストップ(修正同期方法をキーワード)とお勧めできませんなぜ()メソッドを中断しますか?

①相続Threadクラスとrunメソッドをオーバーライドします

②、実行可能なインタフェースを実装するrunメソッドオーバーライド
同期キーワード変更と同期方法。
停止()安全ではありません。
デッドロックが発生しやすい)(一時停止。

33. SLEEP()と待つ()の違いは何ですか?

睡眠は、指定した時間を中断するために、このスレッドにつながる、別のスレッドを実行する機会Threadクラス(スレッド)の方法であるが、状態を監視すると、自動的に復元されますポストに、残っています。コール睡眠は、オブジェクトのロックを解除しません。待ち時間は準備するために、ターゲットプールに入る前に、このオブジェクトをロックするには、このスレッドのオブジェクトは、このメソッドはこのオブジェクトのロックを待ってプールに入るのを待って、オブジェクトのロックを与えるために、このスレッドを待つように導き、そして唯一の方法(またはのnotifyAll)を通知した後に発行される呼び出して、Objectクラスのメソッドです操作へのオブジェクトロック。

33. 同期および非同期の類似点と相違点、彼らが何であったかの状況下で使いますか?イラスト。

データは、スレッド間で共有されます。例えば、それはデータの書き込みの後に別のスレッドによって読み取ることができる、またはデータが別のスレッドによって書かれている可能性があり読まれている、そのデータが共有されているデータは、アクセスを同期させる必要があります。
アプリケーションは、メソッドがオブジェクト上で実行するのに長い時間がかかり、プログラムが戻るために、プロセスを待ちたくない呼び出すと、あなたは多くの場合、非同期的なアプローチを使用して、非同期プログラミングを使用する必要があり、より効率的になる傾向があります。

34. 同期を達成するには、いくつかの方法があります。

待って通知し、同期された同期を達成するためには2つの側面があります。

35. スタートスレッド)が(実行()または開始されましたか?

)メソッドは、スレッドに関連付けられたコードを実行している(そして、あなたが状態を実行するようにスケジュールすることができ、スレッドは準備ができて、start()メソッドを呼び出すスレッドを起動し、スレッドが実行する、いくつかの特定のコード実行に関連付けられている必要があります。

36. スレッドがオブジェクトの同期方法を入力すると、他のスレッドは、このオブジェクトの他のメソッドにアクセスすることができますか?

サブ状況:
増加していない場合は、それができる、synchronizedキーワードを追加する前に他の方法1.かどうか。
この内部メソッド呼び出しが待つ2.場合は、他の同期方法を入力することができます。
3.他の2つの方法は、することはできませんsynchronizedキーワードに追加され、内部は待って呼び出さないと。
非静的メソッドはこのためである。4.他の方法が静的である場合、同期は現在のクラスのバイトコードでロックは、非静的メソッドと同期することができません。

37. スレッドの状態は?

これでJavaスレッドは通常、5つの状態を持って作成し、準備ができて、ブロックと死、実行されています。

38はフレームコレクションの構造を記述する

タイトル

39 のArrayListとベクトルとの差分

ベクターは、ArrayListのラインがそのうちの方法は、スレッド同期ある危険な手順であり、スレッドセーフです。1つのスレッドだけのコレクションにアクセスできる場合、それは、スレッドの安全性を考慮していないので、効率が高くなり、ArrayListのを使用するのが最適です。
元の1倍増加、0.5倍のArrayListのデータ成長にベクトルデータ。

40 のHashMapとハッシュテーブルとの間の差

HashMapのは、キー入力または値としてnullを許容し、Hashtableの許可されていません。
ハッシュテーブルは、スレッドセーフで、HashMapのラインプログラムは安全ではありません。
HashMapの効率速くハッシュテーブルより。

41. リストと地図の違いは?

リストデータを順に格納され、繰り返し可能、地図データは、キーが繰り返されないことを順番に格納されていない、その値が重複することができます。

42. 地図コレクションインターフェイスから継承されたかどうかをリスト、セット、?

リストには、Set市は、ないマップ。

43. リスト、地図、セットの3つのインタフェースは、要素にアクセスする、違いは何ですか?

リストadd()を使用し、PUTを()を使用して地図、アドオンを使用して設定()。

44 言う記憶特性および特徴のArrayList、ベクターのLinkedListの

ArrayListのと記憶、高速データ挿入を実装LinkedListの二重リンクリストを使用しながらベクトルは、記憶されたデータ、クエリ速度のアレイを使用しています。

45 ベクトルの要素の複製セットを削除

=新規新しいnewVectorベクトルベクトル();
について(INT I = 0;私は<vector.size();私は++){
オブジェクトOBJ = vector.get(I)
IF(newVector.contains(OBJ);!
NewVector.add( OBJ);
}
簡単な方法があり、=新しいHashSetの(ベクターセットHashSetの )。

46. コレクションとコレクションの違い

コレクションは、インターフェースの親クラス、継承と彼の主なインターフェイスを設定し、リストのセットです。
コレクションは、彼がソート、検索コレクションの多様性を達成するための静的メソッドのシリーズを提供していますし、そのスレッドセーフな操作クラスのクラス・セットのヘルプです。

要素に設定して47 **繰り返し、この方法はそれを繰り返すかどうかを区別するために使用されていないことは?です==または等号()?**

要素に設定さは、使用される要素を繰り返さないか()決意の方法に等しく繰り返されます。

48. 二つのオブジェクトと同じ値(x.equals(Y)== TRUE) 、異なるハッシュコードを有していてもよく、この文右?

右。
あなたがHashSetのかHashMapを保存したいオブジェクトが、その等号が等しい場合、そのハッシュコードの値が等しくなければなりません。
それはHashSetのかHashMapの中に保管されていない場合は、ハッシュコードとは何ではなく、この時間ハッシュコードの範囲が可能であり、たとえば、ArrayListに格納されたオブジェクトのハッシュコードのために気付いていない、もちろん、我々は通常達成するために、実現しない理由がありません。

49. 要求されたいくつかの一般的に使用されるクラス、パッケージ、インタフェースは、5を与えると言います

常用的类:BufferedReaderのBufferedWriterのFileReaderのFileWirter文字列整数
java.util.Date、システム、クラス、ArrayListに、HashMapの

常用的包:java.langのjava.io java.utilのjava.sqlで、のjavax.servlet、org.apache.strtuts.action、org.hibernate
常用接口的:リモートリストマップドキュメントのNodeList、サーブレット、HttpServletRequestを、HttpServletResponseの、トランザクション(休止状態)、セッション(休止状態)、HttpSessionの

50. バイトストリームと文字ストリームの違い

バイトストリームは、一般的なバイナリストリームであるビットから読み出された
文字のストリームは、文字符号化プロセスに従ってバイトストリームに基づいており、プロセスが文字であります

51. JavaのシリアライズはJavaのシリアル化を達成するためにどのように、何ですか?ロールまたはSerializableインタフェースを説明してください。

オブジェクトを復元するために、逆シリアル化、オブジェクトのシリアル化と呼ばれるバイト列オブジェクトをされて変換すると、オブジェクトのバイトシーケンスと呼ばれています。
直列化を実現することが可能Serializableインタフェースを実装します。

52. 原則として機構JVMクラスのドキュメントの読み込みを説明して?

JVMはクラスによってロードされ、そのサブクラスのクラスローダが達成され、Javaのクラスローダは、Javaランタイムシステムの重要な構成要素です。これは、実行時にロードするクラスファイルを見つけ、クラスを担当しています。

53. 何GCがある?なぜGCがあるはず?

GCは、ガベージコレクション手段(Gabageコレクション)、メモリ処理が問題になりやすい、と忘れたり誤ったメモリの回復プログラムが不安定またはシステムのさえ崩壊につながるプログラマは、提供されているJava GC機能が自動的にオブジェクトを超えているかどうかを監視することができる場所であります自動的にメモリを再利用の目的を達成するために、スコープは、Java言語は、割り当てられたメモリの解放の表示方法の操作を提供していません。

54. Javaのメモリリークが、説明してください行います。

いわゆるメモリリークやオブジェクトを参照する変数は、もはやそれがメモリに占有されているプログラムによって使用されません。オブジェクトは、もはやそのオブジェクト指向プログラミングの孤児によって参照されたときにオブジェクトがあるときに、ガベージコレクタが自動的にメモリから削除されることを保証するJavaのガベージコレクションのメカニズムがあります。Javaはガベージコレクションが道をグラフ化して管理している使用しているので、あなたが参照サイクルの問題を解消することができ、例えば、2つのオブジェクトがある限り、彼らは、ルートプロセスに到達しないよう相互に参照し、その後、GCはそれらを回収することも可能です。

55. あなたはまた、java.lang.Stringでとして知られている独自のクラスを、書くことはできますか?

はい、しかし、アプリケーションの時に、あなたがロードするために、独自のクラスローダを使用する必要がある。そうでない場合は、システムをロードするクラスローダは常にだけのjava.lang.String jre.jarパッケージです。

おすすめ

転載: blog.csdn.net/weixin_43266090/article/details/90301409