今天學完IT十八掌第十天java基礎課程:
學習內容:
基本類型
---------------
包裝類
int Integer
byte Byte
short Short
long Long
float Float
double Double
boolean Boolean
char Character //字符類
JDK 1.5之後出現的新特性,
自動裝箱: Integer i = 12 ; //=== Integer i = new Integer(12);
自動拆箱: Integer i = 12 ; i ++ //=== i.parseInt() = 12; ++
注意:當Integer i = null的時候,如果進行自動拆箱操作就會報NullPointerException異常。
包裝類和基本類型區別
----------------------
1.包裝類是對象,默認值是null。
2.數字型的基本數據類型是0.
3.基本數據類型可以直接參與運算。
集合:
---------------------------------------------------
存儲對象的容器,
|-------Collection 集合接口
|----List 有序,可以重複,帶索引
|---Vector 線程安全,底層採用數組,默認分配爲2倍
|---ArrayList 非線程安全,使用同Vector,查詢快,增刪較慢。默認分配1.5倍空間
|---LinkedList 非線程安全,查詢較慢,增刪快
|----set
|---HashSet 非線程安全,底層採用的是HashMap。通過哈希函數將這些元素正確地分佈在桶中,允許使用Null
|---TreeSet 非線程安全,底層採用的是二叉樹
|-------Map
|--HashTable 線程安全,<K , V>
|--HashMap 非線程安全,<K , V>的,通過keySet()獲得Key的set,使用get(key)調用,也可以通過entrySet()獲得映射關係的Entry類對象,使用getKey(),getValue調用。
|--TreeMap
List : 列表,接口 ArrayList()
[]數組
---------------------
length //長度屬性
String
---------------------
length() //方法.
equals //重寫了Object類中的equals方法,只要兩個字符串類對象的內容相同,equals就返回true,
//而原來的Object類中equasl方法只有在兩個對象是同一個對象時纔會返回true;
interface Collection
------------------------
size() //方法
isEmpty() // ==null ?
判斷集合有效性
col != null && col.isEmpty()
contains(Object obj) //判斷是否包含指定的對象
List //有序,可重複
Set //無序,不重複
Map //key-value
instanceof
-----------------
運算符,判斷變量是否是指定類型的對象。
boolean b = obj instanceof String ;
this.getClass( ) == Student.class
/**
* 創建集合,存放String[tom,tomas,tomsLee]
* 存放Integer[100,200,300]
* 存放Student{name,sex,age,標準javabean}[tom,tomas,tomsLee]
*
*/
Arraylist //數組列表,對數組的包裝,通過下標值訪問。
LinkedList //鏈表,
遇到的問題:
1.舊版eclipse中編寫基本數據類型自動裝箱拆箱時,報錯。原因是eclipse版本過低,jdk版本過低。下載最新的eclipse後,問題解決。
2.集合中內部比較繁瑣,很容易混淆
需要幫助的問題
理清集合的關係