1. 程式人生 > >170道Java工程師面試題-解答

170道Java工程師面試題-解答

  • int是java基本資料型別,Integer 是int的包裝類,new Integer 可得到int型別的物件
  • int i=100;Integer j=new Integer(100); 相等,比較前會將Integer 拆包,實際比較的是常量
  • Integer i=new Integer(100);Integer j=new Integer(100); 不相等。兩個不同的物件
  • Integer i = new Integer(100);Integer j = 100;不相等。因為非new生成的Integer變數指向的是java常量池中的物件,而new Integer()生成的變數指向堆中新建的物件,兩者在記憶體中的地址不同
  • Integer i = 100;Integer j = 100; 相等
  • Integer i = 128;Integer j = 128;不相等
  • 對於兩個非new生成的Integer物件,進行比較時,如果兩個變數的值在區間-128到127之間,則比較結果為true,如果兩個變數的值不在此區間
  • java在編譯Integer i = 100 ;時,會翻譯成為Integer i = Integer.valueOf(100)。而java API中對Integer型別的valueOf的定義如下,對於-128到127之間的數,會進行快取,Integer i = 127時,會將127進行快取,下次再寫Integer j = 127時,就會直接從快取中取,就不會new了