每個人都會經歷大大小小的面試,對於java面試的準備,一定會牽涉到幾個比較大的模組考點。可以說數組是java中一個獨立的模組,其中的知識點已形成了完整的知識架構,在實際考察中會涉及到變量的討論、算法的實際題目運用等,下面我們就常見的java數組面試題帶來分享。
一、基礎知識
1.Java變數一定要初始化嗎?
不一定。 Java數組變數是引用資料類型變量,它並不是數組對象本身,只要讓數組變數指向有效的數組對象,即可使用該數組變數。對數組執行初始化,並不是對數組變數進行初始化,而是對數組物件進行初始化——也就是為該數組物件分配一塊連續的記憶體空間,這塊連續的記憶體空間就是數組的長度。
2.基本型別變數都放在棧記憶體中?
錯。應該這樣說:所有局部變量都放在棧內存裡保存的,不管其是基本類型的變量,還是引用類型變量,都是存儲在各自的方法棧區中;但是引用類型變量所引用的對象(包括數組、普通java物件)則總是儲存在堆記憶體中。
3.引用變數何時只是堆疊記憶體中的變數本身,何時變成引用實例的java物件?
引用變數本質上只是一個指針,只要程式透過引用變數來存取屬性,或透過引用變數來呼叫方法,該引用變數將會由他所引用的物件取代。
二、實例程式碼
旋轉數組:
例如:數組中元素為123456,翻轉後為561234
給定一個數組,長度為n,要求把後k個元素移到前面,前nk個元素移動到後面。
//先改進面試題一中的方法,將從頭到尾翻轉改為從i到j翻轉public int[] changeArray2(int[] array, int i, int j) { int temp = 0; while (i < j) { temp = array[i]; array[i] = array[j]; array[j] = temp; i++; j--; } //實作旋轉數組就可以用下面的方式來實現 //1.翻轉前半部分2.翻轉後半部分3.反轉整個數組 public int[] swap(int[] array, int k) { int n = array.length - 1;// n=5 changeArray2(array, 0, n - k); changeArray2(array, n - k + 1, n); changeArray2(array, 0, n); return array; } }
以上就是java陣列中面試題的展示,大家在對於陣列方面的複習,要對最基礎的知識架構有所明晰,同時複習時要兼顧到一些易考點。