java基礎(chǔ)--集合和流

1.Map()重寫equal同時(shí)重寫hashCode()方法

? Object類中的equal()和==是相同的 String中的equal只比較值

? HashCode()是根據(jù)Object內(nèi)存地址計(jì)算的

? 如果兩個(gè)對象通過調(diào)用equals方法是相等的棵介,那么這兩個(gè)對象調(diào)用hashCode方法必須返回相同的整數(shù)擎颖。

? 重寫equal

2.遍歷Map

? 1)keySet values 只需要map的key或者values

? 2)keySet get? ? 先獲取key 然后根據(jù)key的get(key)

? 3)entrySet? ? ? entry.getKey() entry.getVlue()

? 都可以用iterator代替for

? 4)lambda? map.forEach((key, value) -> {

? ? ? System.out.println(key + ":" + value);

? ? }); 性能低于entrySet

? ? 如果只是獲取key羞反,或者value科吭,推薦使用keySet或者values方式

? ? 如果同時(shí)需要key和value推薦使用entrySet

? ? 如果需要在遍歷過程中刪除元素推薦使用Iterator

? ? 如果需要在遍歷過程中增加元素,可以新建一個(gè)臨時(shí)map存放新增的元素浑此,等遍歷完? ? 畢累颂,再把臨時(shí)map放到原來的map中


3.單例

? 1)懶漢 線程不安全

? ? public class Singleton {?

? ? private static Singleton instance;?

? ? private Singleton (){}?


? ? public static Singleton getInstance() {?

? ? if (instance == null) {?

? ? ? ? instance = new Singleton();?

? ? }?

? ? return instance;?

? ? }?

}?

? 2)懶漢 線程安全

? ? ? ? public class Singleton {?

? ? private static Singleton instance;?

? ? private Singleton (){}?

? ? public static synchronized Singleton getInstance() {?

? ? if (instance == null) {?

? ? ? ? instance = new Singleton();?

? ? }?

? ? return instance;?

? ? }?

}

? 3)餓漢

? ? public class Singleton {?

? ? private static Singleton instance = new Singleton();?

? ? private Singleton (){}?

? ? public static Singleton getInstance() {?

? ? return instance;?

? ? }?

}?

? 4)雙檢鎖

? public class Singleton {?

? ? private volatile static Singleton singleton;?

? ? private Singleton (){}?

? ? public static Singleton getSingleton() {?

? ? if (singleton == null) {?

? ? ? ? synchronized (Singleton.class) {?

? ? ? ? if (singleton == null) {?

? ? ? ? ? ? singleton = new Singleton();?

? ? ? ? }?

? ? ? ? }?

? ? }?

? ? return singleton;?

? ? }?

}

4.IO流

? 字節(jié)流FileInputStream 從文件讀取數(shù)據(jù)

? ? ? ? FileOutputStream

? 字符流FileReader

? ? ? ? FileWriter

? ? ? ? 字符流:

? Reader:用于讀取字符流的抽象類。

? ? ? |---BufferedReader:從字符輸入流中讀取文本凛俱,緩沖各個(gè)字符紊馏,從而實(shí)現(xiàn)字符、數(shù)組和行的高效讀取蒲犬。 可以指定緩沖區(qū)的大小朱监,或者可使用默認(rèn)的大小。大 多數(shù)情況下原叮,默認(rèn)值就足夠大了赫编。

? ? ? ? ? ? |---LineNumberReader:跟蹤行號的緩沖字符輸入流。此類定義了方法setLineNumber(int)和getLineNumbner()奋隶,它們可分別用于設(shè)置和獲取當(dāng)前行號擂送。

? ? ? ? |---InputStreamReader:是字節(jié)流通向字符流的橋梁:它使用指定的 charset 讀取字節(jié)并將其解碼為字符。它使用的字符集可以由名稱指定或顯式給定达布,或者可以接受平臺默認(rèn)的字符集团甲。

? ? ? ? ? ? |---FileReader:用來讀取字符文件的便捷類。此類的構(gòu)造方法假定默認(rèn)字符編碼和默認(rèn)字節(jié)緩沖區(qū)大小都是適當(dāng)?shù)氖蚰簟R约褐付ㄟ@些值,可以先在 FileInputStream 上構(gòu)造一個(gè) InputStreamReader身腻。

***************************************************************************

? Writer:寫入字符流的抽象類产还。

? ? ? ? |---BufferedWriter:將文本寫入字符輸出流,緩沖各個(gè)字符嘀趟,從而提供單個(gè)字符脐区、數(shù)組和字符串的高效寫入。

? ? ? ? |---OutputStreamWriter:是字符流通向字節(jié)流的橋梁:可使用指定的 charset 將要寫入流中的字符編碼成字節(jié)她按。它使用的字符集可以由名稱指定或顯式給定牛隅,否則將接受平臺默認(rèn)的字符集。

? ? ? ? ? ? |---FileWriter:用來寫入字符文件的便捷類酌泰。此類的構(gòu)造方法假定默認(rèn)字符編碼和默認(rèn)字節(jié)緩沖區(qū)大小都是可接受的媒佣。要自己指定這些值,可以先在 FileOutputStream 上構(gòu)造一個(gè) OutputStreamWriter陵刹。

****************************************************************************

? 字節(jié)流:

? InputStream:是表示字節(jié)輸入流的所有類的超類默伍。

? ? ? ? |--- FileInputStream:從文件系統(tǒng)中的某個(gè)文件中獲得輸入字節(jié)。哪些文件可用取決于主機(jī)環(huán)境。FileInputStream 用于讀取諸如圖像數(shù)據(jù)之類的原始字節(jié)流也糊。要讀取字符流炼蹦,請考慮使用 FileReader。

? ? ? ? |--- FilterInputStream:包含其他一些輸入流狸剃,它將這些流用作其基本數(shù)據(jù)源掐隐,它可以直接傳輸數(shù)據(jù)或提供一些額外的功能。

? ? ? ? ? ? |--- BufferedInputStream:該類實(shí)現(xiàn)緩沖的輸入流钞馁。

**************************************************************************

? OutputStream:此抽象類是表示輸出字節(jié)流的所有類的超類虑省。

? ? ? ? |--- FileOutputStream:文件輸出流是用于將數(shù)據(jù)寫入 File 或 FileDescriptor 的輸出流。

? ? ? ? |--- FilterOutputStream:此類是過濾輸出流的所有類的超類指攒。

? ? ? ? ? ? ? |--- BufferedOutputStream:該類實(shí)現(xiàn)緩沖的輸出流慷妙。

? ? 緩沖流(buffer):對文件或者其他目標(biāo)頻繁的操作,效率低允悦,性能差膝擂。? 使用緩沖流的好處是? ? ? ? ? 能夠更高效的讀寫信息,原理是現(xiàn)將數(shù)據(jù)緩沖起來隙弛,然后一起寫入或者讀取出來

? ? 轉(zhuǎn)換流:InputStreamReader是字節(jié)流通向字符流的橋梁

? ? ? ? ? OutputStreamWriter是字符流通向字節(jié)流的橋梁

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末架馋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子全闷,更是在濱河造成了極大的恐慌叉寂,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件总珠,死亡現(xiàn)場離奇詭異屏鳍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)局服,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門钓瞭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淫奔,你說我怎么就攤上這事山涡。” “怎么了唆迁?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵鸭丛,是天一觀的道長。 經(jīng)常有香客問我唐责,道長鳞溉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任妒蔚,我火速辦了婚禮穿挨,結(jié)果婚禮上月弛,老公的妹妹穿的比我還像新娘。我一直安慰自己科盛,他們只是感情好帽衙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贞绵,像睡著了一般厉萝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上榨崩,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天谴垫,我揣著相機(jī)與錄音,去河邊找鬼母蛛。 笑死翩剪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的彩郊。 我是一名探鬼主播前弯,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秫逝!你這毒婦竟也來了恕出?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤违帆,失蹤者是張志新(化名)和其女友劉穎浙巫,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刷后,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡的畴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尝胆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苗傅。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖班巩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嘶炭,我是刑警寧澤抱慌,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站眨猎,受9級特大地震影響抑进,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜睡陪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一寺渗、第九天 我趴在偏房一處隱蔽的房頂上張望匿情。 院中可真熱鬧,春花似錦信殊、人聲如沸炬称。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玲躯。三九已至,卻和暖如春鳄乏,著一層夾襖步出監(jiān)牢的瞬間跷车,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工橱野, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朽缴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓水援,卻偏偏與公主長得像密强,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子裹唆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法誓斥,類相關(guān)的語法,內(nèi)部類的語法许帐,繼承相關(guān)的語法劳坑,異常的語法,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理成畦,服務(wù)發(fā)現(xiàn)距芬,斷路器,智...
    卡卡羅2017閱讀 134,702評論 18 139
  • 從三月份找實(shí)習(xí)到現(xiàn)在循帐,面了一些公司框仔,掛了不少,但最終還是拿到小米拄养、百度离斩、阿里、京東瘪匿、新浪跛梗、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,277評論 11 349
  • 一棋弥、基礎(chǔ)知識:1核偿、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,388評論 0 4
  • 新版本進(jìn)入了測試期顽染,時(shí)間不那么緊迫了漾岳,突然想起來之前早想讀一下IQKeyboardManager的源碼轰绵,現(xiàn)在果斷走...
    BigDaddy_閱讀 1,375評論 0 3