教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

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

更新時(shí)間:2018年01月05日10時(shí)26分 來(lái)源:傳智播客 瀏覽次數(shù):

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

HashSet集合

創(chuàng)建集合對(duì)象

添加元素對(duì)象

遍歷集合對(duì)象

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

2.迭代器

3.增強(qiáng)for

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

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

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

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

collections是一個(gè)工具類

Map雙列集合(接口)

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

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

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

鍵是無(wú)序的

Map和Collections的區(qū)別

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

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

常用功能:

刪除功能:

void clear();清空集合

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

判斷功能:

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

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

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

覆蓋功能:

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

遍歷功能:

Set

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

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

獲取功能:

V get(Object key)

Map的遍歷方式:

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

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

可變參數(shù)

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

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

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

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

就業(yè)第八天

異常:

概述:不正常,我們?cè)诖a出現(xiàn)的編譯或者運(yùn)行時(shí)的錯(cuò)誤

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

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

Throwable(最頂層):

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

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

RuntimeException:編譯時(shí)正常,運(yùn)行時(shí)發(fā)生的異常

常見異常:

NullPointerException:空指針

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

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

異常的處理方式:

//第一種方式

捕獲

try{

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

可以有多行代碼

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

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

也可以通過異常對(duì)象名獲取異常的信息

}finally{

用于釋放資源

清理垃圾

}

首先執(zhí)行try語(yǔ)句

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

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

處理多個(gè)異常

使用多個(gè)try...catch語(yǔ)句

使用一個(gè)try和多個(gè)catch語(yǔ)句

多個(gè)catch的順序

多個(gè)

平級(jí)沒有順序

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

//第二種方式

拋出

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

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

定義格式:

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

}

JVM處理異常:

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

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

String getMessage();

返回異常原因

String toString();

返回異常類型

void printStackTrace();

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

異常分類

1.運(yùn)行時(shí)期異常:RuntimeExceptipon的子類就是運(yùn)行時(shí)期異常,可以自行處理或者不處理

2.編譯時(shí)期異常:

非RuntimeException ,編譯時(shí)期的一樣必須處理

兩種異常處理方式

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

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

注意

拋出(throws)

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

注意:

1.遞歸一定要有出口

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

就業(yè)第九天

IO流

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

相對(duì)路徑:相對(duì)于某個(gè)參照物,不以盤符開頭

FIle類

常用功能:

創(chuàng)建功能

boolean createNewFile():

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

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

boolean mkdir():

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

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

boolean mkdirs();

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

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

判斷功能

boolean exists():

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

boolean isAbsolute():

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

boolean isDirectory():

判斷File對(duì)象指向的是否是目錄,是true,否false

boolean isFile():

判斷File對(duì)象指向的是否是文件,是true,否false

boolean isHidden():

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

獲取功能

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

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

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

刪除功能

boolean delete():

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

當(dāng)指定文件或文件夾存在時(shí)刪除文件,返回true,不存在時(shí)返回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:字符打印流

特點(diǎn):

1.自動(dòng)換行

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

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

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

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

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

ObjectInputStream:對(duì)象輸入流

readObject

ObjectInputStream(InputStream in)

ObjectOutputStream:對(duì)象輸出流

writeObject

ObjectOutputStream(OutputStream out)

注意:使用對(duì)象輸出流寫出對(duì)象,只能用對(duì)象輸入流寫入

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

集合

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

構(gòu)造方法:

Properties

和IO流結(jié)合

1.void list(PrintWriter out)

2.void load(Reader reader)

3.void store(writer

屬性 配置 Map();

亂碼

編碼表

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

GB2312 ---GBK 國(guó)標(biāo)和國(guó)標(biāo)擴(kuò)展碼

Unicode:萬(wàn)國(guó)碼

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

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

原因

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

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

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

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

本文版權(quán)歸傳智播客JavaEE學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客JavaEE培訓(xùn)學(xué)院
0 分享到:
和我們?cè)诰€交談!