首頁技術(shù)文章正文

JavaSE進(jìn)階之學(xué)習(xí)筆記

更新時間:2018-01-05 來源:黑馬程序員 瀏覽量:

集合之set接口。特點:元素存取無序,元素不可重復(fù),無索引。

HashSet集合

創(chuàng)建集合對象

添加元素對象

遍歷集合對象

1.轉(zhuǎn)數(shù)組

2.迭代器

3.增強for

通過查看源碼發(fā)現(xiàn):

確保元素唯一性,先比hash值,再比地址值,或進(jìn)行equals方法比較.比較結(jié)果一樣則認(rèn)為重復(fù)不添加.不一樣則添加。當(dāng)hashCode方法永遠(yuǎn)返回1時,所有對象的hash值一樣。有一些對象的成員變量不同,但是還是需要進(jìn)行hash和equals方法進(jìn)行比較,為了提高程序的效率,可以把成員變量和hashCode方法的返回值關(guān)聯(lián)起來。

collection和collects有什么去區(qū)別?

collection是集合體系的最頂層,包含了集合體系的共性

collections是一個工具類

Map雙列集合(接口)

概述:雙列集合用于提供一對一數(shù)據(jù)的處理,與Collection屬于同級

特點:將鍵映射到值得對象.一個映射不能包含重復(fù)的鍵,每個鍵最多只能映射一個值

鍵不可重復(fù),值可以重復(fù)

鍵是無序的

Map和Collections的區(qū)別

Map:雙列集合,用于處理具有對應(yīng)關(guān)系的數(shù)據(jù),key是不可重復(fù)的,也叫夫妻對集合

Collection:單列集合,具有不同的子體系,有有序的,也有無序的,也叫單身漢集合

常用功能:

刪除功能:

void clear();清空集合

V remove(Object obj):根據(jù)指定的key刪除對應(yīng)關(guān)系,并返回key對應(yīng)的值

判斷功能:

boolean containKey();判斷指定key是否存在

boolean containValue();判斷指定的value是否存在

boolean isEmpty();判斷集合是否為空

覆蓋功能:

V put(K key,V value);將key映射到value,key存在則覆蓋value,

遍歷功能:

Set

SetkeySet();將所有的鍵返回成一個Set集合

Collectionvalues();將所有的元素返回成一個Set集合或List集合,

獲取功能:

V get(Object key)

Map的遍歷方式:

1.找出所有的key,遍歷所有的key集合,獲取key,通過get()方法獲取value

2.通過Map的EntrySet方法來把Key和Value輸入到Map的內(nèi)部類Entry中,再調(diào)用Entry對象的getKey方法和getValue方法來遍歷輸出

可變參數(shù)

當(dāng)參數(shù)不確定,但類型要一致,Java可以直接轉(zhuǎn)成數(shù)組

實參:(實參1,實參2,....)

形參:類型名...變量名

注意:可以在可變參數(shù)前添加別的形參,但不可以在后面加

就業(yè)第八天

異常:

概述:不正常,我們在代碼出現(xiàn)的編譯或者運行時的錯誤

異常包含了錯誤的類型、原因以及位置

體系結(jié)構(gòu):

Throwable(最頂層):

Error:出現(xiàn)的不能夠處理的嚴(yán)重問題

Exception:可以處理的問題,編譯時期的異常

RuntimeException:編譯時正常,運行時發(fā)生的異常

常見異常:

NullPointerException:空指針

ArrayIndexOutOfBoundException:數(shù)組指針越界

任何數(shù)字除以0都會拋出異常

異常的處理方式:

//第一種方式

捕獲

try{

存放可能發(fā)生的異常代碼

可以有多行代碼

}catch(異常類型 異常對象名){

對異常進(jìn)行處理的代碼

也可以通過異常對象名獲取異常的信息

}finally{

用于釋放資源

清理垃圾

}

首先執(zhí)行try語句

發(fā)現(xiàn)異常,異常下面的代碼不執(zhí)行,跳入catch語句,catch語句結(jié)束后,try...catch結(jié)束

沒有異常,不執(zhí)行catch語句

處理多個異常

使用多個try...catch語句

使用一個try和多個catch語句

多個catch的順序

多個

平級沒有順序

有子父類,父類必須在后面

//第二種方式

拋出

在不想處理或沒有能力處理異常時,可以選擇拋出

關(guān)鍵字:throws,在方法的聲明處使用

定義格式:

方法名(參數(shù)列表) throws 異常類型1,異常類型2........{

}

JVM處理異常:

異常我們不處理,JVM會把異常的種類,原因還有把位置顯示在命令行,并且終止程序,異常后的代碼不再執(zhí)行

try...catch操作捕獲的異常

String getMessage();

返回異常原因

String toString();

返回異常類型

void printStackTrace();

輸出異常原因和類型,還有位置

異常分類

1.運行時期異常:RuntimeExceptipon的子類就是運行時期異常,可以自行處理或者不處理

2.編譯時期異常:

非RuntimeException ,編譯時期的一樣必須處理

兩種異常處理方式

throws:處理異常的一種方式將異常拋出,由調(diào)用者處理

throw:制造異常的方式,并且結(jié)束方法

注意

拋出(throws)

遞歸:大事化小,小事化了

注意:

1.遞歸一定要有出口

2.遞歸次數(shù)不宜過多

就業(yè)第九天

IO流

絕對路徑:固定不可變的路徑,以盤符開頭

相對路徑:相對于某個參照物,不以盤符開頭

FIle類

常用功能:

創(chuàng)建功能

boolean createNewFile():

創(chuàng)建新文件,返回是否創(chuàng)建成功

文件不存在的時候返回true并創(chuàng)建文件,存在的時候返回false

boolean mkdir():

創(chuàng)建目錄,返回是否成功

文件夾不存在的時候返回true并創(chuàng)建,存在的時候返回false

boolean mkdirs();

創(chuàng)建多級目錄,包括指定路徑中缺少的父級目錄,

當(dāng)多級文件夾不存在時返回true并創(chuàng)建多級文件夾,存在返回false

判斷功能

boolean exists():

判斷文件或文件夾是否存在,存在true,否則false

boolean isAbsolute():

判斷File對象指向的路徑是否是絕對路徑,是true,否false

boolean isDirectory():

判斷File對象指向的是否是目錄,是true,否false

boolean isFile():

判斷File對象指向的是否是文件,是true,否false

boolean isHidden():

判斷File對象指向的路徑是否有隱藏屬性,是true,否false

獲取功能

String[] list():獲取當(dāng)前路徑下所有文件和目錄的名稱,返回成一個字符串?dāng)?shù)組

File[] listFiles():獲取當(dāng)前路徑下所有文件和目錄,返回成一個File類的對象數(shù)組

static File[] listRoots():返回當(dāng)前電腦的所有盤符

刪除功能

boolean delete():

刪除文件或文件夾,返回是否成功

當(dāng)指定文件或文件夾存在時刪除文件,返回true,不存在時返回false

注意:delete()方法刪除文件夾,文件夾下面不能有文件和文件夾

IO流分類

流向

輸入流 讀取數(shù)據(jù) FileReader Reader

輸出流 寫出數(shù)據(jù) FileWriter Writer

數(shù)據(jù)類型

字節(jié)流 字節(jié)輸入流 讀取數(shù)據(jù) InputStream類

字節(jié)輸出流 寫出數(shù)據(jù) OutputStream類

字符流 字符輸入流 讀取數(shù)據(jù) Reader類

字符輸出流 寫出數(shù)據(jù) Writer類

遞歸中

就業(yè)第十天

轉(zhuǎn)換流

OutputStreamWriter:字節(jié)輸出流轉(zhuǎn)字符輸出流

InputStreamReader:字節(jié)輸入流轉(zhuǎn)字符輸入流

打印流

PrintStream:字節(jié)打印流

PrintWriter:字符打印流

特點:

1.自動換行

2.輸出除了字節(jié)以外的任意類型

3.通過構(gòu)造方法配置,實現(xiàn)自動刷新(調(diào)用println、printf或format才有用)

4.包裝流,不具備寫功能

5.可以把字節(jié)流轉(zhuǎn)換流字符輸出流

對象操作流:可以用于讀寫任意類型的對象

ObjectInputStream:對象輸入流

readObject

ObjectInputStream(InputStream in)

ObjectOutputStream:對象輸出流

writeObject

ObjectOutputStream(OutputStream out)

注意:使用對象輸出流寫出對象,只能用對象輸入流寫入

解決對于實現(xiàn)序列化接口黃色警告的問題

集合

Properties :表示一個持久的屬性集,屬性列表中每個鍵及對應(yīng)值都是一個字符串

構(gòu)造方法:

Properties

和IO流結(jié)合

1.void list(PrintWriter out)

2.void load(Reader reader)

3.void store(writer

屬性 配置 Map();

亂碼

編碼表

ASCII:美國標(biāo)準(zhǔn)碼

GB2312 ---GBK 國標(biāo)和國標(biāo)擴展碼

Unicode:萬國碼

UTF-8:Unicode的一種實現(xiàn)方式,長度可變的碼表,一個字符棧1or2or3個字節(jié)

ANSI:本地編碼表,根據(jù)系統(tǒng)決定編碼

原因

字符串編碼的轉(zhuǎn)換

標(biāo)準(zhǔn)輸入輸出流

public static final InputStream in;字節(jié)輸入流,用來讀取鍵盤錄入的數(shù)據(jù)

public static final OutputStream out;字節(jié)輸出流,將數(shù)據(jù)輸出到控制臺


本文版權(quán)歸黑馬程序員JavaEE學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!

作者:黑馬程序員JavaEE培訓(xùn)學(xué)院

首發(fā):http://java.itheima.com/

分享到:
在線咨詢 我要報名
和我們在線交談!