day30

1.java.util.Collections工具類:

1、線程同步

/*
static <T> Collection<T> synchronizedCollection(Collection<T> c) 
返回由指定集合支持的同步(線程安全)集合仿耽。 
static <T> List<T> synchronizedList(List<T> list) 
返回由指定列表支持的同步(線程安全)列表眯搭。 
static <K,V> Map<K,V> synchronizedMap(Map<K,V> m) 
返回由指定地圖支持的同步(線程安全)映射窥翩。 
*/
Collection<Object> c = Collections.synchronizedCollection(new ArrayList<>());
List<Object> list = Collections.synchronizedList(new ArrayList<>());
Map<Object, Object> map = Collections.synchronizedMap(new HashMap<>());

2、同時向容器中添加多個元素

/*
static <T> boolean addAll(Collection<? super T> c, T... elements) 
將所有指定的元素添加到指定的集合鳞仙。 
*/
Collections.addAll(list,e1,e2,e3,e4...);

3寇蚊、排序

/*
static <T extends Comparable<? super T>>
void sort(List<T> list) 
根據(jù)其元素的natural ordering對指定的列表進行排序。  
static <T> void sort(List<T> list, Comparator<? super T> c) 
根據(jù)指定的比較器引起的順序?qū)χ付ǖ牧斜磉M行排序棍好。  

注意點:
List集合中的元素仗岸,要具有可比性,才能夠進行排序sort()借笙,比較大小扒怖。
Comparable接口,Comparator接口业稼。
*/
ArrayList<Integer> list2 = new ArrayList<>();
        Collections.addAll(list2, 3,1,6,4,2,7);
        System.out.println(list2);//list集合本身是添加的順序
        
        //集合排序
        Collections.sort(list2);
        System.out.println(list2);
        
        Collections.sort(list2, new Comparator<Integer>() {

            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        System.out.println(list2);
        

4盗痒、將集合中的元素進行翻轉(zhuǎn):

/*
static void reverse(List<?> list) 
反轉(zhuǎn)指定列表中元素的順序。  
*/
//list集合的翻轉(zhuǎn):元素顛倒過來低散。
Collections.reverse(list2);

5俯邓、將集合中元素隨機

/*
隨機洗牌
static void shuffle(List<?> list) 
使用默認的隨機源隨機排列指定的列表
*/
        //讓集合中的元素,隨機的存儲位置
        Collections.shuffle(list2);
        System.out.println(list2);

6熔号、替換

/*
static <T> boolean replaceAll(List<T> list, T oldVal, T newVal) 
將列表中一個指定值的所有出現(xiàn)替換為另一個稽鞭。 
*/
Collections.replaceAll(list2, 1, 100);
System.out.println(list2);

7、統(tǒng)計指定元素在集合中出現(xiàn)的次數(shù)

/*
static int frequency(Collection<?> c, Object o) 
返回指定集合中與指定對象相等的元素數(shù) 
*/
int count = Collections.frequency(list2, 6);
System.out.println(count);

2.1引镊、異常

異常的概念:

異常:Exception
概念:在程序執(zhí)行的時候朦蕴,代碼中產(chǎn)生的不正常事件篮条,導(dǎo)致程序無法正常的執(zhí)行。

程序的執(zhí)行流程:

step1:JVM創(chuàng)建一個主線程吩抓,調(diào)用主函數(shù)涉茧,程序的入口:main()...
step2:按照main方法中的內(nèi)容,從上向下執(zhí)行琴拧,逐行執(zhí)行
    創(chuàng)建對象降瞳。。蚓胸。
    分支語句挣饥。。沛膳。
    循環(huán)語句扔枫。。
    方法調(diào)用锹安。短荐。。叹哭。忍宋。
step3:當(dāng)main方法中的所有代碼全部執(zhí)行完畢,程序正常結(jié)束了风罩。JVM退出了糠排。

程序的執(zhí)行過程中,產(chǎn)生了異常超升,由JVM負責(zé)創(chuàng)建該類型的異常對象并拋出入宦,打斷程序的執(zhí)行。

2.2室琢、異常的分類

Throwable類:可拋出的乾闰。
|————Error:錯誤。(系統(tǒng)級別的問題盈滴,程序員解決不了)
|————Exception:異常涯肩。(程序員需要解決的)
Exception:異常
|————受檢異常,編譯在編譯程序時候巢钓,能夠檢查出來的異常病苗。外部的因素導(dǎo)致的異常。
    IOException:IO異常
    FileNotFoundException:文件不存在的異常
    SQLException:數(shù)據(jù)庫異常
    竿报。。继谚。烈菌。
    必須處理阵幸,程序才能運行。

|————非受檢異常芽世,又叫運行時異常(RuntimeException)挚赊。編譯器在編譯程序的時候,不檢查济瓢。運行時候可能暴露出來的異常荠割。代碼中的邏輯問題導(dǎo)致的異常。
    ArithmeticException:算術(shù)異常
    NullPointerException:空指針異常
    ClassCastException:類轉(zhuǎn)型失敗異常
    ArrayIndexOutOfBoundsException:數(shù)組下標(biāo)越界異常
    StringIndexOutOfBoundsException:字符串下標(biāo)越界異常
    InputMismatchException:類型不匹配異常
    NumberFormatException:數(shù)字格式化異常
    旺矾。蔑鹦。。箕宙。
    

step1:編寫源代碼

step2:編譯器進行編譯:產(chǎn)生字節(jié)碼文件

? javac HelloWorld.java--->HelloWorld.class

step3:解釋器去執(zhí)行嚎朽。

? java HelloWorld

2.3、捕獲異常

捕獲的語法結(jié)構(gòu):

try{
    //try語句塊中柬帕,有可能產(chǎn)生異常的代碼哟忍,嘗試著執(zhí)行
}catch(異常類型1 e){
    //對異常處理
}catch(異常類型2 e){
    //
}...
finally{
    //此處的操作是可選的,
    這里的代碼陷寝,一定會被執(zhí)行的锅很。。
}

解釋說明:關(guān)鍵字

  • try:嘗試的意思凤跑,嘗試著執(zhí)行代碼塊中的代碼
  • catch:抓取爆安,捕獲,捕獲異常對象饶火。鹏控。
  • finally:最終的。

執(zhí)行流程:

1肤寝、先嘗試著執(zhí)行try語句塊中的代碼当辐,如果沒有產(chǎn)生異常,忽略catch語句鲤看。繼續(xù)向下執(zhí)行缘揪。

2、如果產(chǎn)生異常了义桂,那么就會跳出try語句找筝,而去匹配catch語句,和哪個catch匹配上了慷吊,就進入到catch語句中去執(zhí)行袖裕。

3、一個try語句可以配合多個catch溉瓶,產(chǎn)生異常時急鳄,會從上向下匹配這些異常類型谤民。和哪個匹配上了就執(zhí)行哪個catch。小類型的異常寫前面疾宏,大類型的異常寫后面张足。

4、如果有finally語句坎藐,無論是否產(chǎn)生異常为牍,都會執(zhí)行finally里面的代碼。該語句塊是可選的岩馍。一般用于資源的釋放碉咆,文件的斷開,臨時文件的刪除兼雄。吟逝。

2.4、拋出異常

throws關(guān)鍵字赦肋,該方法不處理異常块攒,拋出,交給調(diào)用處進行處理異常佃乘。

public void test()throws 異常類型1,異常類型2...{

}

表示該方法不處理異常囱井,向外拋出,交由調(diào)用處進行處理趣避。受檢異常庞呕,調(diào)用處就必須處理,非受檢異常調(diào)用處可以暫時不處理程帕。

【擴展內(nèi)容】

1住练、throw關(guān)鍵字,主動拋出一個異常對象愁拭。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末讲逛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子岭埠,更是在濱河造成了極大的恐慌盏混,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惜论,死亡現(xiàn)場離奇詭異许赃,居然都是意外死亡,警方通過查閱死者的電腦和手機馆类,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門混聊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乾巧,你說我怎么就攤上這事句喜〗┐常” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵藤滥,是天一觀的道長。 經(jīng)常有香客問我社裆,道長拙绊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任泳秀,我火速辦了婚禮标沪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗜傅。我一直安慰自己金句,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布吕嘀。 她就那樣靜靜地躺著违寞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪偶房。 梳的紋絲不亂的頭發(fā)上趁曼,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天,我揣著相機與錄音棕洋,去河邊找鬼挡闰。 笑死,一個胖子當(dāng)著我的面吹牛掰盘,可吹牛的內(nèi)容都是我干的摄悯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼愧捕,長吁一口氣:“原來是場噩夢啊……” “哼奢驯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起晃财,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤叨橱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后断盛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體罗洗,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年钢猛,在試婚紗的時候發(fā)現(xiàn)自己被綠了伙菜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡命迈,死狀恐怖贩绕,靈堂內(nèi)的尸體忽然破棺而出火的,到底是詐尸還是另有隱情,我是刑警寧澤淑倾,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布馏鹤,位于F島的核電站,受9級特大地震影響娇哆,放射性物質(zhì)發(fā)生泄漏湃累。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一碍讨、第九天 我趴在偏房一處隱蔽的房頂上張望治力。 院中可真熱鬧,春花似錦勃黍、人聲如沸宵统。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽马澈。三九已至,卻和暖如春弄息,著一層夾襖步出監(jiān)牢的瞬間箭券,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工疑枯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辩块,地道東北人。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓荆永,卻偏偏與公主長得像废亭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子具钥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容