一、常量
1)常量命名規則:所有單詞的字母都是大寫,如果有多個單詞,那麼使用下劃線連接即可。比如說:public static final int AGE_OF_PERSON;
2)在Java中聲明final常量時通常都會加上static關鍵字,這樣對象的每個實例都會訪問唯一一份常量值。
二、IDE(Integrated Development Environment):集成開發環境
1)NetBeans
2)JBuilder
3)Intellij IDEA
4)Eclipse(日蝕、月食)
三、Java集合接口,學習目標:a.理解Java集合框架 b.熟練使用java.util包中的相關類於接口進行編程開發 c.改善程序性能,今後進行程序編寫時將大量使用集合類與相關接口
List:ArrayList和LinkedList
1)集合中存放的依然是對象的引用而不是對象的本身,無法放置原生數據類型,我們需要使用原生數據類型的包裝類才能加到集合當中。
2)集合當中放置的都是Object類型,因此取出來的也是Object類型,那麼必須要使用強制類型轉換將其轉爲真正的類型(放進去的類型)。
3)ArrayList底層採用數組實現,當採用不帶參數的構造方法生成ArrayList對象時,實際上會在底層生成一個長度爲10的Object類型數組;如果增加的元素個數超過了10個,那麼ArrayList底層會新生成一個數組,長度爲原數組的1.5倍+1,然後將原數組的內容複製到新數組當中,並且後續增加的內容都會放到新數組當中。當新數組無法容納增加的元素時,重複該過程。 //ArrayList的插入和刪除代價比較高
4)ArrayList和LinkedList區別
a) ArrayList底層採用數組實現(順序結構),LinkedList底層採用雙向鏈表實現。
b)當執行插入或者刪除操作時,採用LinkedList比較好。
c)當執行搜索操作時,採用ArrayList比較好。
d)當向ArrayList添加一個對象時,實際上就是將該對象的引用放置到了ArrayList 底層所維護的數組當中;當向LinkedList中添加一個對象時,實際上LinkedList內部會生成一個Node對象,該對象結構爲:
private static class Node<E> {
E item; //對象的引用
Node<E> next; //後繼
Node<E> prev; //前驅
Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}
LinkedList中所維護的是Node對象,而不是所添加的對象。
四、用LinkedList構造棧和隊列:棧的功能(入棧,出棧,查看棧頂元素,判斷棧是否爲空),隊列的功能(入隊,出對,判斷隊是否爲空)
棧:
public class StackTest
{
LinkedList data = new LinkedList();
int size = 0;
public void push(Object o) //入棧
{
size++;
data.add(o);
}
public Object pop() //出棧
{
size--;
return data.removeLast();
}
public Object peek() //查看棧頂元素
{
return data.peekLast();
}
public boolean isEmpty() //判斷棧是否爲空
{
if(size == 0)
return true;
else
return false;
}
}
隊列:
public class QueueTest
{
LinkedList data = new LinkedList();
int size = 0;
public void enQueue(Object o)
{
size++;
data.add(o);
}
public Object deQueue()
{
size--;
return data.removeFirst();
}
public boolean isEmpty()
{
if(size == 0)
return true;
else
return false;
}
}