List,Map,SET,transient關(guān)鍵字,final,finally,finalize,String,StringBuilder,StringBuff

List,Map,Set

Collection接口

* 是最基本的集合接口,一個Collection代表一組Object。
* 不論Collection的實際類型如何,都支持一個iterator()的方法,該方法返回一個迭代活玲,使用該迭代看了注意訪問Collection中的每一個元素。

List接口

* List是有序就Colliection谍婉,此接口能夠精確控制每個元素插入的位置舒憾。
* 用戶能夠使用索引來訪問List中的元素
* 允許有相同的元素
* 有序
* 實現(xiàn)類有ArrayList,LinkedList, vector穗熬,stack
  • LinkedList類
    • 鏈表實現(xiàn)镀迂,鏈表內(nèi)存是散亂的,每一個元素存儲本身內(nèi)存地址的同時還存儲了下一個元素的地址唤蔗。所以增刪塊探遵,查找慢
    • 允許null元素。
    • 非線程安全
  • ArrayList類
    • 線性實現(xiàn)妓柜,相當于可變大小的數(shù)組箱季,查詢效率高
    • 允許所有元素,包括null领虹。
    • 非線程安全
  • vector類
    • 類似ArrayList规哪,但卻是線程安全的求豫,效率較低
  • stack類
    • 繼承自vector類塌衰,實現(xiàn)一個后進先出的棧诉稍。

Set接口

* 不包含重復(fù)元素的Collection
* Set中只允許有一個null
  • HashSet類
    • 底層由HashMap實現(xiàn)
    • 為快速查找設(shè)計的Set。
    • 存入HashSet的對象必須定義hashCode()
  • TreeSet類
    • 保存順序的Set
    • 底層為樹結(jié)構(gòu)
    • 可以從Set中提取有序的序列
  • LinkedHashSet
    • 有HashSet的查詢速度最疆,且內(nèi)部使用鏈表維護與元素順序杯巨。
    • 使用迭代器遍歷Set時,結(jié)果會按元素插入順序顯示努酸。

Map接口

* 沒有繼承Collection接口服爷,Map提供key到value的映射。
* 不能包含相同的key获诈,每個key只能映射一個value仍源。
* 保持鍵的唯一性
  • HashTable類
    • 實現(xiàn)Map接口,實現(xiàn)一個key-value映射的哈希表
    • key或value不得為null
    • 所有key對象都必須實現(xiàn)hashCode和equals方法[這個不影響舔涎,因為這兩個方法在根類Object中就有]
    • 避免相同對象有不同hashCode的問題笼踩,只要同時復(fù)寫equals和hashCode即可
    • 線程安全
  • HashMap類
    • 與HashTable類似,但卻是非線程安全
    • 允許null亡嫌,key,value都可以為null
    • 使用特殊的值嚎于,也就是hash碼來查詢的,效率很高挟冠。
    • 所有java對象都能產(chǎn)生hash碼于购,hashCode()是定義在基類Object中的方法
  • LikedHashMap類
    • 與HashMap類似。
    • 迭代遍歷時知染,獲取鍵值對的順序是插入順序肋僧,或者是最近最少使用的順序。
    • 只比HashMap慢一點持舆。迭代訪問時更快色瘩。
    • 使用鏈表維護內(nèi)部順序

注:我這里是不是可以理解為,鏈表維護的結(jié)合逸寓,如果用迭代的方式訪問居兆,速度就會非常快竹伸?

  • TreeMap類
    • 基于紅黑樹結(jié)構(gòu)的實現(xiàn)(也就是二叉樹)
    • 查看鍵或鍵值對時泥栖,會被排序(順序由Comparable或Comparator任意一個接口決定)
    • 非線程安全

transient關(guān)鍵字

* 在需要實現(xiàn)Serilizable接口的類中,將不需要序列化的屬性前添加transient關(guān)鍵字勋篓,序列化對象的時候吧享,這個屬性就不會序列化到指定的目的地中
* 一旦變量被transient修飾,變量將不再是對象持久化的一部分譬嚣,該變量內(nèi)容在序列化后無法獲得訪問钢颂。
* transient關(guān)鍵字只能修飾變量,而不能修飾方法和類拜银。注意殊鞭,本地變量是不能被transient關(guān)鍵字修飾的遭垛。變量如果是用戶自定義類變量,則該類需要實現(xiàn)Serializable接口操灿。
* 被transient關(guān)鍵字修飾的變量不再能被序列化锯仪,一個靜態(tài)變量不管是否被transient修飾,均不能被序列化趾盐。

final,finally,finalize

final

* 被final修飾的類庶喜,不能被繼承,所以一個類不能同時被final和abstract修飾
* 被final修飾的方法和屬性救鲤,在使用過程中不能被修改久窟。
* 聲明的變量必須在聲明時就初始化
* 聲明的方法也只被使用,不能被重寫

finally

* 用于異常情況本缠,在try catch之后使用瘸羡,無論異常是否拋出,finally都會被執(zhí)行

finalisze

* 方法名
* 垃圾回收器將對象從內(nèi)存中清理出去之前必須做的工作搓茬。在垃圾回收器確定某個對象沒有被引用時對這個對象調(diào)用的犹赖。
* 它是在Object中定義的,所以所有類都會有這個方法

String,StringBuilder,StringBuffer

首先說運行速度卷仑,或者說是執(zhí)行速度峻村,
在這方面運行速度快慢為:StringBuilder > StringBuffer > String
String最慢的原因:
String為字符串常量,
而StringBuilder和StringBuffer均為字符串變量锡凝,
即String對象一旦創(chuàng)建之后該對象是不可更改的粘昨,
但后兩者的對象是變量,是可以更改的窜锯。
而StringBuilder和StringBuffer的對象是變量张肾,
對變量進行操作就是直接對該對象進行更改,
而不進行創(chuàng)建和回收的操作锚扎,
所以速度要比String快很多吞瞪。

String ----> 字符串常量
StringBuffer ----> 字符串變量(線程安全的)
StringBuilder ----> 字符串變量(非線程安全的)

String:適用于少量的字符串操作的情況
StringBuilder:適用于單線程下在字符緩沖區(qū)進行大量操作的情況
StringBuffer:適用多線程下在字符緩沖區(qū)進行大量操作的情況

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市驾孔,隨后出現(xiàn)的幾起案子芍秆,更是在濱河造成了極大的恐慌,老刑警劉巖翠勉,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妖啥,死亡現(xiàn)場離奇詭異,居然都是意外死亡对碌,警方通過查閱死者的電腦和手機荆虱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人怀读,你說我怎么就攤上這事酥郭。” “怎么了愿吹?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惜姐。 經(jīng)常有香客問我犁跪,道長,這世上最難降的妖魔是什么歹袁? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任坷衍,我火速辦了婚禮,結(jié)果婚禮上条舔,老公的妹妹穿的比我還像新娘枫耳。我一直安慰自己,他們只是感情好孟抗,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布迁杨。 她就那樣靜靜地躺著,像睡著了一般凄硼。 火紅的嫁衣襯著肌膚如雪铅协。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天摊沉,我揣著相機與錄音狐史,去河邊找鬼。 笑死说墨,一個胖子當著我的面吹牛骏全,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播尼斧,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼姜贡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了棺棵?” 一聲冷哼從身側(cè)響起鲁豪,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎律秃,沒想到半個月后爬橡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡棒动,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年糙申,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片船惨。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡柜裸,死狀恐怖缕陕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疙挺,我是刑警寧澤扛邑,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站铐然,受9級特大地震影響蔬崩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜搀暑,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一沥阳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧自点,春花似錦桐罕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至术唬,卻和暖如春死宣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碴开。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工毅该, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人潦牛。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓眶掌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親巴碗。 傳聞我的和親對象是個殘疾皇子朴爬,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

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

  • 一、基礎(chǔ)知識:1橡淆、JVM召噩、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機...
    殺小賊閱讀 2,378評論 0 4
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,101評論 0 62
  • 從一輛老式馬車上走下一位伯爵逸爵、一位侯爵和一位公證人具滴。天空晴朗,樹木师倔、花草都在一棟別墅的院子里茂盛地生長著构韵。可是,空...
    奇葩的少年閱讀 460評論 1 4
  • 人說三十而立疲恢。我快三十了凶朗,我才明白人生到底需要什么,我要什么显拳。 我不要懶洋洋的佛系棚愤,我不要誰都去討好的社交圈,我不...
    Orianna貓爺閱讀 649評論 0 0
  • 2018/04/27 晨起便后裸重61.9kg杂数,終于又下62了宛畦,現(xiàn)在我對于自己減肥可以說是非常地認真了,因為我打算...
    瘦的越慢胖的越慢閱讀 195評論 0 0