日常學(xué)習(xí) 8.11 集合與異常值處理
8.11
API文檔的查看
API:A 應(yīng)用程序 P 編程 I 接口(此接口表示對外提供的功能)
API文檔:就是這些功能的說明書(字典)
JDKAPI文檔是有java源碼的文檔注釋生成的
再API文檔中有些方法被標(biāo)記為 已棄用 ,說明官方不推薦使用,但是可以用
一、集合大家族
-族長(頂層接口):Collection 意為收集器
-List 列表 數(shù)據(jù)是有序的,可重復(fù)的 (適合長期的存儲)
-Set 集 數(shù)據(jù)是無序的,不可重復(fù)的 (實(shí)現(xiàn)某些功能)
有序:有 下標(biāo)/索引,添加順序就是存儲的順序
無序:無 下標(biāo)/索引,添加順序不一定是存儲的順序
最常用的集合類:ArrayList
各大容器的對比:
-數(shù)組
-長度不可變
-所有的數(shù)據(jù)類型都能創(chuàng)建對應(yīng)數(shù)組
-同一個(gè)數(shù)組元素類型必須一致 如 int[]
-對象
-屬性的個(gè)數(shù)是不可變的
-所有的數(shù)據(jù)類型都能存進(jìn)對象里
-集合
-長度可變
-集合只能存引用數(shù)據(jù)類型 (注意:每個(gè)基本數(shù)據(jù)類型都有對應(yīng)的封裝類 如 int --> Integer)
-集合中可以存不同的數(shù)據(jù)類型,但是一般都會規(guī)定集合存儲同一種類型,
規(guī)定語法叫做定義"泛型" <數(shù)據(jù)類型>
ArrayList
1.增
add(新元素) 添加到末尾
add(index,新元素) 添加到指定位置
2.刪
remove(index) 根據(jù)下標(biāo)刪除
remove(對象) 根據(jù)對象刪除
clear() 清空
3.改
set(index,新值) 根據(jù)下標(biāo)修改
4.查
獲取一個(gè)新元素 集合名.get(index)
獲取每一個(gè)元素 遍歷
1.普通for循環(huán)遍歷
2.增強(qiáng)for循環(huán)遍歷(foreach遍歷)迭代
for(元素的類型 元素的變量(a) :遍歷的目標(biāo)){
直接使用a
}
(將遍歷的目標(biāo)一個(gè)一個(gè)賦值給a)
二、異常大家族
-族長 Throwable 意為可拋出的
-Error 意為錯(cuò)誤
比如語法錯(cuò)誤,內(nèi)存溢出 是無法處理的,必須修改代碼邏輯
-Exception 意為異常
1.編譯時(shí)期的異常
一邊寫代碼,一邊提示的異常
比如:線程異常 文件異常 IO流的異常 SQL的異常
2.運(yùn)行時(shí)期的異常 RuntimeException
在代碼編譯階段沒問題,運(yùn)行之后才會報(bào)出的異常
比如:數(shù)組越界,集合越界,空指針
異常處理機(jī)制
-虛擬機(jī)有默認(rèn)處理方案
1.展示異常的類型信息
2.展示異常出現(xiàn)的位置
3.終止了程序(終止了當(dāng)前的線程)
-自定義處理
-方式一:try catch代碼塊
try{
可能出現(xiàn)異常的代碼
}catch(異常類型:可直接寫父類類型如Exception,所有子類都可檢測 取個(gè)名字e){
如果try的代碼出現(xiàn)異常,并且異常類型與catch的類型匹配,
就會執(zhí)行這里的代碼,并且程序還能繼續(xù)運(yùn)行
}
-方式二
1.方法拋出異常 throws
2.誰調(diào)用方法,誰處理 try catch
異常處理使用場景
絕對不是隱藏bug或者規(guī)避bug
作用是利用異常處理機(jī)制 讓 代碼在改無可改的情況 保存程序繼續(xù)運(yùn)行
支線任務(wù):
1.Object的toString方法有什么用
1、toString()方法的設(shè)計(jì)目的是:通過調(diào)用這個(gè)方法可以將一個(gè)“JAVA對象”轉(zhuǎn)換成“字符串表現(xiàn)形式”。
2、返回對象的字符串表現(xiàn)形式??偟膩碚f,這個(gè)方法返回一個(gè)字符串,“以文本的方式表示”這個(gè)對象。其結(jié)果應(yīng)是一個(gè)簡潔的,容易閱讀的,建議所有子類都重寫此方法。
3、**注意:**輸出引用的時(shí)候,會自動(dòng)調(diào)用該引用的toString()方法。
2.==和equals有什么區(qū)別
==是比較地址
equals是比較其內(nèi)容值
3.你覺得String的哪些好用的方法?
-求字符串某一位置字符
public char charAt(int index)?
-提取子串
用String類的substring方法可以提取字符串中的子串,該方法有兩種常用參數(shù):
1)public String substring(int beginIndex) // 該方法從beginIndex位置起,從當(dāng)前字符串中取出剩余的字符作為一個(gè)新的字符串返回。
2)public String substring(int beginIndex, int endIndex) // 該方法從beginIndex位置起,從當(dāng)前字符串中取出到endIndex-1位置的字符
4.ArrayList和LinkedList有什么區(qū)別
linkedList的底層是鏈表,在順序查詢的時(shí)候效率更高,并且有pop方法可以直接彈出其中的對象
ArratList的底層是數(shù)組,亂序查詢的時(shí)候效率更高。