1. 程式人生 > >【原創】Java面試題筆記

【原創】Java面試題筆記

也不能 als color body 但是 函數 log 字符 方法

  • 自動裝箱、拆箱
 1 public class IntegerTest {
 2 
 3     @Test
 4     public void constPool(){
 5         // 自動裝箱時,調用valueOf方法,默認會將-128 至 127 放常量池
 6         Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;
 7 
 8         System.out.println(f1 == f2); // true 常量池中
 9         System.out.println(f3 == f4); // false 非常量池中,不同對象引用
10 } 11 12 @Test 13 public void autoboxing(){ 14 Integer a = new Integer(3); 15 Integer b = 3; 16 int c = 3; 17 18 System.out.println(a == b); // false 不同引用 19 System.out.println(a == c); // true a自動拆箱成int類型 20 } 21 }
  • 棧(stack)、堆(heap)、靜態區(static area)

通常我們定義一個基本數據類型的變量,一個對象的引用,還有就是函數調用的現場保存都使用內存中的棧空間;而通過new關鍵字和構造器創建的對象放在堆空間;程序中的字面量(literal)如直接書寫的100、”hello”和常量都是放在靜態區中。棧空間操作起來最快但是棧很小,通常大量的對象都是放在堆空間,理論上整個內存沒有被其他進程使用的空間甚至硬盤上的虛擬內存都可以被當成堆空間來使用。

String str = new String("hello");

上面的語句中變量str放在棧上,用new創建出來的字符串對象放在堆上,而”hello”這個字面量放在靜態區。

  • 構造方法

子類默認繼承父類的無參數的構造方法。帶參數的構造方法不能繼承,也不能重寫,因為類名都不一樣了。

【原創】Java面試題筆記