JAvaクラシック基礎面接問題

1871 ワード

1、==とequalsの違い
「等」は、基本データ型を比較したり、参照データ型を比較したりすることができます.基本データは比較値ですが、参照データ型はメモリアドレスを比較します.equalsは書き換えられるかどうかを見ます.書き換えられていない場合は、書き換えた場合は参照データ型のみを比較し、値を比較します.なぜeclipseでhashCodeを複写する方法で、31という数字がありますか?任意の数のn*31はJVMによって(n<<5)-nに最適化され、シフトと減算の操作効率は乗算の操作効率よりずっと高く、左シフト仮想マシンの中に関連する最適化があり、31は5 bitsしか占めていない.
2、java.io.Serializableインタフェースの理解について話します.シーケンス化に使われていることを知っています.空のメソッドインタフェースです.他に知っていますか.
  1、       Entity     implements serializable。 	
 2、                    。 	
 3、                         , serializable
            。

3、Stringの理解定数はプールを探して、変数(+)はスタックを探して、変数は2つの文字列のつなぎ合わせならプールに最適化します
   String s4 = "java";
  String s5 = "ja";
  String s6 = "va";
  //    ,  (+)  
  System.out.println(s4 == "java");
  System.out.println(s4 == (s5+s6));
  System.out.println(s4 == "ja"+s6);
T f f


4、String、StringBuffer、StringBuilderの違い
ここでは引用Stringは文字定数StringBufferは文字変数スレッド安全Stringbuilderは文字変数スレッドが安全ではなく、効率が最も高い
5、intとintegerの違い
1、Integerはintが提供するパッケージクラスであり、intはJavaの基本データ型である.2、Integerのデフォルト値はnullで、intのデフォルト値は0です.3、Integerと宣言された変数はインスタンス化する必要があり、intと宣言された変数はインスタンス化する必要がない.4、Integerはオブジェクトで、1つの参照でこのオブジェクトを指しますが、intは基本タイプで、直接数値1を格納します.いずれにしても、Integerとnew Integerは等しくありません.解体プロセスは経験されず、i 3の参照はスタックを指し、i 4は彼のメモリ(定数プール)を専門に格納することを指し、彼らのメモリアドレスは異なるのでfalse②両方ともnew以外のIntegerであり、-128から127の間であればtrueであり、そうでなければfalse③両方ともnewであり、false④intとinteger(newの有無にかかわらず)比であり、trueである.Integerをintに自動分解してから比べますので
6、sleep()とwait()の違いは何ですか.
sleep()は静的メソッドでスレッド呼び出しです...wait()は、オブジェクト呼び出しです
sleep()メソッドは、スレッドをしばらく停止させる方法です.sleep間隔が満了した後、スレッドはすぐに実行を再開するとは限らない.これは、(a)「目が覚める」スレッドがより高い優先度(b)で実行中のスレッドが他の理由でブロックされない限り、他のスレッドが実行中であり、実行を放棄するようにスケジューリングされていないためである.wait()がスレッドインタラクションである場合、スレッドが同期オブジェクトxに対してwait()呼び出しを発行すると、スレッドは実行を一時停止し、起動または待機時間が到来するまで被調整オブジェクトは待機状態に入る.