1. 程式人生 > >一些必須知道的JAVA基礎知識

一些必須知道的JAVA基礎知識

作為一名Android開發人員,面試的時候也會經常被問到一些java基礎方面的。這就前段時間面試中遇到的一些java方面的,可能不全,只是我面試中遇到的。
寫這篇部落格只是為了自己在以後的面試中(雖然現在上班了)不要在被同樣的問題難到,以後還會持續更新。

1. ArrayList 和 LinkedList:

1.兩者是是集合,不同的是內部的資料結構和實現原理有所不同。ArrayList內部是陣列結構,LinkedList內部是連結串列的資料結構。ArrayList的優點是get或set(查詢)效率高。LinkedList是add(新增)和remove(刪除)效率高。
2. ArrayList他既然是陣列結構,陣列就每一個元素都有索引,那麼當向其中新增一個數據的話,則每一個元素的索引都會發生變化。這樣導致效率地下。但是查詢的話,我們可以根據索引很容易找到具體的元素。
LinkedList是連結串列資料結構,當向其中新增或者刪除一個數據的時候,它只需要對其前後的資料改變引用即可。因此這方面它比ArrayList效率高。查詢的話,由於連結串列,它必須從頭到尾的去遍歷,除非要找的元素正好在開頭或者末尾,否則他是很好時的

這裡寫圖片描述

2. Java類中的變數如果不寫修飾符,則預設修飾符是什麼 ?,是protected。

我面試的時候是直接給看了一張類似的圖:
這裡寫圖片描述
請問圖中沒有修飾符的textView的預設修飾符是什麼。也是protected許可權的

3. Java遍歷List有幾種方式,分別是什麼?

  1. for迴圈(這個是最容易想到的)
  2. for eaceh
  3. Iterartor 迭代器遍歷

示例程式碼:

public static void main(String[] args) {
         List<String> list = new
ArrayList<>(); for (int i = 1; i < 7; i++) { list.add("星期" + i); } listFor(list); //for迴圈 listForEach(list);//foreach迴圈 listIterator(list);//迭代器迴圈 } private static void listIterator(List<String> list) { Iterator<String> iterator = list.iterator(); while
(iterator.hasNext()) { String i = (String) iterator.next(); System.out.println("Iterator迴圈---"+i); } } private static void listForEach(List<String> list) { for (String string : list) { System.out.println("foreach迴圈---"+string); } } private static void listFor(List<String> list) { for (int i = 0; i < list.size(); i++) { System.out.println("for迴圈---"+list.get(i)); } }

輸出結果:

這裡寫圖片描述