Java筆記04-核心類庫
Object類
1.1 常用的包
java.lang包 -該包是Java語言中的核心包,該包中的內容由Java虛擬機自動導入
如:String類,System類等java.util包- 該包是Java語言中的工具包,里面包含了大量的工具類和集合類等java.io包 是輸入輸出包,包括讀寫各種設備java.net包 是網絡編程包,包括各種網絡編程java.sql包 是操作數據庫的所有類和接口
Java程序員在編程時,可以使用大量的類庫,因此,java編程需要記的很多,對編程能力的本身要求不是特別的高.
第三個階段
從這個階段開始,我們不需要自己來寫一些類了
而是要學習系統給我們寫好的一些類了,這部分最好需要隨時來查詢API文檔
Object類
- 基本概念
java.lang.Object類是所有類層次結構的根類,任何類都是該類的直接或間接子類.
(也驗證了那就話,萬物皆對象
) - 常用的方法
Object() - 使用無參方式構造對象boolean equals(Object obj) - 用于判斷調用對象是否與參數對象相等- 該方法默認比較兩個對象的地址,與== 運算符結果相同- 為了使得該方法比較兩個對象的內容,則需要重寫該方法- 若該方法重寫后,則應該重寫hashCode()方法來維護hashCode方法的常規協定int hashCode() - 用于獲取調用對象的哈希碼值(內存地址的編號)- 若調用equals方法的結果相等,則各自調用hashCode方法的結果相同- 若調用equals方法的結果不相等,則各自調用hashCode方法的結果不相同- 為了維護上述的常規協定與equals方法結果保持一致,就需要重寫該方法String toString()方法 - 用于獲取對象的字符串形式- 該方法默認返回的字符串為:包名.類名@哈希碼值的十六進制形式- 為了返回更有意義的數據內容,則需要重寫該方法- 當字符串內容與引用進行連接時,自動調用toString()方法- 當使用print()或println()方法打印引用時,或者用+連接時候,調用該方法
equals方法
equals方法用于判斷對象是否"相等"
equals(Object obj)
// 這么定義的好處是,所有的類都能夠作為的參數傳遞進來
// 大不了就形成多態唄!
多態無處不在
boolean equals(Object obj)
要想調用這個方法,這個引用必須是非空的引用,不然會引起空指針異常
自反性: 自個兒跟自個兒比都相等,廢話
對稱性: y.equals(x)相等 -> x.equals(y)
傳遞性: x與y等,y與z等,那么x與z等
一致性: x與y等,x還是與y等
對于空: x(非空).equals(null)結果為false
說白了equals就是比較引用類型的地址信息
與 == 運算符等價
包裝類和數學處理類
Person p = new Person();
// 聲明Person類型的引用,指向Person類型的對象
int num = 10;
// 聲明一個int類型的變量num初始值為10
// Java語言是一門純面向對象的編程語言// 對于八種不是對象類型的變量,我們就要想辦法把他們包裝成面向對象的 -->
包裝類概念由于Java語言是一門純面向對象的編程語言,而8種基本數據類型聲明的變量并不是對象,為了滿足Java語言的特性就需要對這些變量進行對象化處理,而實現該功能的相關類就叫做包裝類
包裝類的分類int -> java.lang.Integer類char -> java.lang.Character類其他類型對應的包裝類就是首字母變為大寫的
Integer類
基本概念:java.lang.Integer類是int類型的包裝類,里面包含了一個int類型的成員變量.該類有final關鍵字修飾表示不能被繼承
常用方法Integer(int value) - 根據參數指定的整數構造對象Integer(String s) - 根據參數知指定的字符串構造對象該類重寫了equals(), hashCode() toString()方法
包裝類
基本數據類型,使用起來非常方便,但是沒有對應的方法來操作這些數據類型的數據,可以使用一個類,把基本數據類型裝起來,在類中定義一些方法,這個類叫做包裝類,我們可以使用類中的方法來操作這些基本數據類型的數據
裝箱與拆箱
- 裝箱:
- 把基本數據類型的數據,包裝到包裝類中(基本數據類型的數據->包裝類)
- 構造方法:
- Integer(int value)
- 靜態方法:
- 拆箱:
- 在包裝類中取出基本類型數據(包裝類->基本類型數據)
- 成員方法:int intValue() 以int 類型返回該Integer的值
基本類型與字符串類型之間的相互轉換
- 基本類型 -> 字符串(String)
-
- 基本類型的值+"" 最簡單的方法(工作中常用)
-
- 包裝類的靜態方法toString(參數),不是Object類的toString()重載
-
- String類的靜態方法valueOf(參數)
- static String valueOf(int i) 返回int 參數的字符串表示形式
- 字符串(String) -> 基本類型
- 使用包裝類的靜態方法paresXXX(“字符串”);
-
Integer類:static int parseInt(String s)
-
Double類: static double parseDouble(String s)
String轉換成對應的基本數據類型
除了Character類之外,其他所有包裝類都具有parseXXX靜態方法可以將字符串參數轉換為對應的基本類型:
int i = Integer.parseInt(s3);
float ff = Float.parseFloat(s);
long l = Long.parseLong(s);
...
學習集合的目標:
- 會使用集合存儲數據
- 會遍歷集合,把數據取出來
- 掌握每種集合
集合框架的學習方式:
-
學習底層:學習頂層接口/抽象類中共性的方法,所有的子類都可以使用
-
使用底層:底層不是接口就是抽象類,無法創建對象使用,需要使用底層的子類創建對象使用
容器類數據包含結構
繼承:子類共性抽取,形成父類(接口)
Collection接口List接口Vector集合ArrayList集合LinkedList集合Set接口TreeSet集合HashSet集合(無序)LinkedHashSet集合
無序的集合(存儲和取出元素的順序有可能不一致)
Collection接口
定義的是所有單列集合中共性的方法
所有的單列集合都可以使用共性的方法
沒有帶索引的方法
List接口
1. 有序集合(存儲和取出元素順序相同)
2. 允許存儲重復的元素
3. 有索引,可以使用普通的for循環遍歷
Set接口
1. 不允許存儲重復元素
2. 沒有索引(不能使用普遍for循環遍歷)
Collection接口
- java.util.Collection
- 所有單列集合的最頂層的接口,里面定義了所有單列集合共性的方法
- 任意的單列集合都可以使用Collection接口中的方法
- 共性的方法
- public boolean add(E e): 把給定的對象添加到當前集合中
- public void clear():清空集合中所有的元素
- public boolean remove(E e):把給定的對象在當前集合中刪除
- public boolean contains(E e):判斷當前集合中是否包含給定的對象
- public boolean isEmpty(): 判斷當前集合是否為空.
- public int size(): 返回集合中元素的個數.
- public Object[] toArray(): 把集合中的元素,存儲到數組中.
Iterator迭代器
在程序開發中,經常需要遍歷集合中的所有元素.針對這種需求,JDK專門提供了一個接口java.util.Iterator
.Iterator
接口也是Java集合中的一員,但它與Collection
,Map
接口有所不同,Collection
接口與Map接口主要用于存貯元素,而Iterator
主要用于迭代訪問(即遍歷)Collection
中的元素,因此Iterator
對象也被稱為迭代器.
想要遍歷Collection
集合,那么就要獲取該集合迭代器完成迭代操作,下面介紹一下獲取迭代器的方法:
public Iterator iterator()
:獲取集合對應的迭代器,用來遍歷集合中的元素的.
下面介紹一下迭代的概念:- 迭代:即
Collection
集合元素的通用獲取方式.在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來,繼續在判斷,如果還有就再取出出來.
一直把集合中的所有元素全部取出.這種取出方式專業術語稱為迭代
Iterator
接口的常用方法如下:
public E next()
:返回迭代的下一個元素.public boolean hasNext()
:如果仍有元素可以迭代,則返回true
- java.util.Iterator 接口:迭代器(對集合進行遍歷)
- 有兩個常用的方法
- boolean hasNext() 如果仍有元素可以迭代,則返回true
- E next() 返回迭代的下一個元素
- 取出集合中的下一個元素
- Iterator 迭代器,是一個接口,我們無法直接使用,需要使用ITerator接口的實現類對象,獲取實現類的方式比較特殊
- Collection接口中有一個方法,叫iterator(),這個方法返回的就是迭代器的實現類對象
- Iterator iterator()
- 返回在此 collection 的元素進行迭代的迭代器