Java錯(cuò)題本01

如何實(shí)現(xiàn)字符串的反轉(zhuǎn)及替換垦藏?


ArrayList和 Vector 都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù)

LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ)


Set和 Map 容器都有基于哈希存儲(chǔ)和排序樹(shù)的兩種實(shí)現(xiàn)版本辐啄,基于哈希存儲(chǔ)的版本理

論存取時(shí)間復(fù)雜度為O(1)饮怯,List以特定索引來(lái)存取元素


sleep()方法(休眠)是線程類(Thread)的靜態(tài)方法豺鼻,wait()是 Object 類的

方法耽梅,只有調(diào)用對(duì)象的notify()方法(或 notifyAll()方法)時(shí)才能喚醒


設(shè)計(jì)模式

二分法


程序和進(jìn)程的本質(zhì)區(qū)別是:靜態(tài)和動(dòng)態(tài)特征

Ipv6占用16個(gè)字節(jié)除盏,128bits叉橱;IP數(shù)據(jù)包的最大長(zhǎng)度是64K字節(jié)(65535)

RARP協(xié)議根據(jù)MAC地址求主機(jī)對(duì)應(yīng)的IP地址

異常:

可查異常即必須進(jìn)行處理的異常,要么try catch住,要么往外拋者蠕,誰(shuí)調(diào)用窃祝,誰(shuí)處理,比如 FileNotFoundException踱侣。如果不處理粪小,編譯器大磺,就不讓你通過(guò)

運(yùn)行時(shí)異常RuntimeException指:?不是必須進(jìn)行try catch的異常?常見(jiàn)運(yùn)行時(shí)異常:?除數(shù)不能為0異常:ArithmeticException下標(biāo)越界異常:ArrayIndexOutOfBoundsException空指針異常:NullPointerException在編寫(xiě)代碼的時(shí)候,依然可以使用try catch throws進(jìn)行處理探膊,與可查異常不同之處在于杠愧,即便不進(jìn)行try catch,也不會(huì)有編譯錯(cuò)誤?逞壁。Java之所以會(huì)設(shè)計(jì)運(yùn)行時(shí)異常的原因之一流济,是因?yàn)橄聵?biāo)越界,空指針這些運(yùn)行時(shí)異常太過(guò)于普遍腌闯,如果都需要進(jìn)行捕捉袭灯,代碼的可讀性就會(huì)變得很糟糕。


每個(gè)Unicode碼绑嘹,一個(gè)字符兩個(gè)字節(jié)稽荧,所以16bit。

String +“xxxx”會(huì)生成一個(gè)新的字符串對(duì)象工腋。數(shù)組不具備索引訪問(wèn)功能姨丈。

Collection主要方法

8種基本數(shù)據(jù)類型:byte short long char boolean int float double ??使用時(shí)是值傳遞,除此為應(yīng)用傳遞擅腰。

String s1=“hello”蟋恬;String s2= “hello”,(s1==s2)為true趁冈。若String s1 = new String(“hello”)歼争,為false;渗勘,new操作會(huì)在堆上分配兩個(gè)字符串沐绒,地址不同


Jvm會(huì)給新創(chuàng)建的對(duì)象一個(gè)指針this,this是對(duì)當(dāng)前類對(duì)象的引用旺坠,實(shí)例化后才存在乔遮。

類方法是不依賴對(duì)象而存在的方法,只要有訪問(wèn)權(quán)限取刃,類方法可以調(diào)用任意的類方法蹋肮。

對(duì)象被實(shí)例化后,類方法即可調(diào)用實(shí)例方法璧疗。


構(gòu)造方法:

可省略坯辩,編譯器會(huì)提供一個(gè)默認(rèn)的方法

構(gòu)造方法必須與類同名,方法名也可以和類同名崩侠。

一個(gè)對(duì)象被new時(shí)一定會(huì)調(diào)用構(gòu)造方法漆魔。

因?yàn)闃?gòu)造方法可以重載,所以一個(gè)類可以定義多個(gè)構(gòu)造方法


Array Vector LinkedList都是 可動(dòng)態(tài)改變 的數(shù)組

A和V是基于Object[] array,內(nèi)存開(kāi)辟連續(xù)空間有送。L采用雙向列表淌喻。v是線程安全的僧家。


事務(wù)是數(shù)據(jù)庫(kù)中一個(gè)單獨(dú)的執(zhí)行單元雀摘,四個(gè)屬性:原子性、一致性八拱、隔離性阵赠、持久性


Java集合筆記:

四種體系:

Set:無(wú)序不重復(fù)

List:有序重復(fù)

Map:有映射關(guān)系

Queue:隊(duì)列集合實(shí)現(xiàn)

兩個(gè)接口:Collection(list set queue)和Map(根接口)

HashSet:不是同步;元素值可以是null肌稻。當(dāng)向HashSet存入元素清蚀,調(diào)用該對(duì)象的hashCode()方法得到該對(duì)象的hashCode值,由值決定在在HashSet的存儲(chǔ)位置爹谭。

兩個(gè)元素相等的標(biāo)準(zhǔn):equals()方法返回true枷邪,hashCode()相等

不要輕易修改HashSet的對(duì)象。

LinkedHashSet是Hashet的子類诺凡,使用鏈表維護(hù)元素次序

TreeSet是SortedSet接口的實(shí)現(xiàn)類东揣,確保集合元素處于排序狀態(tài)。只能添加同一種類型的對(duì)象

當(dāng)一個(gè)對(duì)象加入加入TreeSet集合時(shí)腹泌,調(diào)用該對(duì)象的compareTo(Object obj)方法與容器其他方法比較大小嘶卧,然后根據(jù)紅黑樹(shù)結(jié)構(gòu)找到存儲(chǔ)位置,若相等凉袱,無(wú)法添加芥吟。返回0表示相等。

EnumSet類


各Set實(shí)現(xiàn)類的性能分析

Hashset的性能優(yōu)于TreeSet专甩,除非需要一個(gè)保持排序的Set钟鸵。遍歷LinkedHashSet更快。

EnumSet是所有Set中性能最好的涤躲,但只能保存同一個(gè)枚舉類的枚舉值作為集合元素

這三個(gè)類都是線程不安全的携添,可以通過(guò)synchronizedSortedSet方法包裝,在創(chuàng)建時(shí)進(jìn)行篓叶。

SortedSet s = Collections.synchronizedSortedSet(new TreeSet());


List集合

集合的每個(gè)元素都有對(duì)應(yīng)的順序索引烈掠。允許重復(fù)元素,默認(rèn)按添加順序設(shè)置索引缸托。

Void add (int index,Object element)

Object get/remove(int index)


List類的兩個(gè)典型實(shí)現(xiàn):ArrarList和Vector左敌,都是基于數(shù)組實(shí)現(xiàn),動(dòng)態(tài)允許再分配俐镐。使用initialCapacity設(shè)置數(shù)組長(zhǎng)度矫限,超過(guò)時(shí)會(huì)自動(dòng)增加。

顯著區(qū)別,ArrayList是線程不安全的

ArrayKust LinkedList是線性表的典型實(shí)現(xiàn)叼风,基于數(shù)組和鏈取董。LinkedList提供了雙端隊(duì)列、棧的功能无宿∫鹛總體上A的性能好。遍歷集合孽鸡,A和V使用隨機(jī)訪問(wèn)方法(get)蹂午,L使用迭代器(iterator)

Queue集合

PriorityQueue按隊(duì)列大小重新排序


Map集合

List有數(shù)字索引,Map用key索引彬碱。從源碼上看豆胸,包裝所有value為null的Map即可實(shí)現(xiàn)Set。

HashSet和Hashtable(古老的類):

Table線程安全巷疼,不能有key或value為null晚胡。Map允許有key或value為null

判斷key需要hashnode和equals。判斷value只要equals



泛型

集合缺點(diǎn)嚼沿,忘記對(duì)象數(shù)據(jù)類型估盘,dog對(duì)象的集合可能放進(jìn)cat對(duì)象


例子:創(chuàng)建一個(gè)只保存字符串的集合

List strList = new ArratList()后面的方括號(hào)可省略。


Java多線程

進(jìn)程的三個(gè)特征:獨(dú)立性(獨(dú)立擁有自己的資源伏尼,用戶進(jìn)程不可以直接訪問(wèn)其他進(jìn)程的地址空間)

動(dòng)態(tài)性:進(jìn)程和程序的區(qū)別忿檩。進(jìn)程具有生命周期和各種不同狀態(tài)

并發(fā)性:多個(gè)進(jìn)程可以在單個(gè)處理器上并發(fā)進(jìn)行(并行性是指同時(shí)執(zhí)行沒(méi)有切換)


線程,也被稱為輕量級(jí)進(jìn)程

進(jìn)程與線程的區(qū)別

1)一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程.

2)多線程程序的并發(fā)性高爆阶,因?yàn)榫€程的劃分尺度小于進(jìn)程燥透。

3)進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元分配大量資源,而多個(gè)線程共享內(nèi)存辨图,效率高班套。

4)線程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口故河、順序執(zhí)行序列和程序的出口吱韭。但是線程不能夠獨(dú)立執(zhí)行,必須依存在應(yīng)用程序中鱼的,由應(yīng)用程序提供多個(gè)線程執(zhí)行控制理盆。

5)進(jìn)程和線程的重要區(qū)別:從邏輯角度來(lái)看,多線程的意義在于一個(gè)應(yīng)用程序凑阶,有多個(gè)執(zhí)行部分可以同時(shí)執(zhí)行猿规。但對(duì)于操作系統(tǒng)并沒(méi)有將多個(gè)線程看做多個(gè)獨(dú)立的應(yīng)用,來(lái)實(shí)現(xiàn)進(jìn)程的調(diào)度和管理以及資源分配宙橱。

創(chuàng)建線程

1.繼承Thread類

一姨俩、重寫(xiě)run方法蘸拔,也稱為線程執(zhí)行體。

二环葵、創(chuàng)建子類的實(shí)例调窍,即創(chuàng)建了線程的對(duì)象

三、調(diào)用start()方法啟動(dòng)線程

2.實(shí)現(xiàn)Runnable接口

一张遭、定義Runnable接口的實(shí)現(xiàn)類邓萨,重寫(xiě)run方法

二、創(chuàng)建Runnable實(shí)現(xiàn)類的實(shí)例


Runnable好處:

1可繼承多個(gè)接口

2共享一個(gè)target對(duì)象


Thread好處:

使用this即可獲得當(dāng)前線程

???fH?l

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末帝璧,一起剝皮案震驚了整個(gè)濱河市先誉,隨后出現(xiàn)的幾起案子湿刽,更是在濱河造成了極大的恐慌的烁,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诈闺,死亡現(xiàn)場(chǎng)離奇詭異渴庆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)雅镊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)襟雷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人仁烹,你說(shuō)我怎么就攤上這事耸弄。” “怎么了卓缰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵计呈,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我征唬,道長(zhǎng)捌显,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任总寒,我火速辦了婚禮扶歪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘摄闸。我一直安慰自己善镰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布年枕。 她就那樣靜靜地躺著炫欺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪画切。 梳的紋絲不亂的頭發(fā)上竣稽,一...
    開(kāi)封第一講書(shū)人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼毫别。 笑死娃弓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的岛宦。 我是一名探鬼主播台丛,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼砾肺!你這毒婦竟也來(lái)了挽霉?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤变汪,失蹤者是張志新(化名)和其女友劉穎侠坎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體裙盾,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡实胸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了番官。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庐完。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖徘熔,靈堂內(nèi)的尸體忽然破棺而出门躯,到底是詐尸還是另有隱情,我是刑警寧澤酷师,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布讶凉,位于F島的核電站,受9級(jí)特大地震影響窒升,放射性物質(zhì)發(fā)生泄漏缀遍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一饱须、第九天 我趴在偏房一處隱蔽的房頂上張望域醇。 院中可真熱鬧,春花似錦蓉媳、人聲如沸譬挚。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)减宣。三九已至,卻和暖如春玩荠,著一層夾襖步出監(jiān)牢的瞬間漆腌,已是汗流浹背贼邓。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闷尿,地道東北人塑径。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像填具,于是被迫代替她去往敵國(guó)和親统舀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法劳景,類相關(guān)的語(yǔ)法誉简,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法盟广,異常的語(yǔ)法闷串,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,599評(píng)論 18 399
  • 在一個(gè)方法內(nèi)部定義的變量都存儲(chǔ)在棧中,當(dāng)這個(gè)函數(shù)運(yùn)行結(jié)束后衡蚂,其對(duì)應(yīng)的棧就會(huì)被回收窿克,此時(shí)骏庸,在其方法體中定義的變量將不...
    Y了個(gè)J閱讀 4,413評(píng)論 1 14
  • 集合框架: 1)特點(diǎn):存儲(chǔ)對(duì)象毛甲;長(zhǎng)度可變;存儲(chǔ)對(duì)象的類型可不同2)Collection(1)List:有序的具被;元素...
    Demo_Yang閱讀 1,251評(píng)論 0 4
  • 可不可以少些故事玻募,可不可以簡(jiǎn)單點(diǎn)?
    晨_a3c0閱讀 154評(píng)論 0 0
  • 原創(chuàng)作者:莫小北 長(zhǎng)大就是不會(huì)在沒(méi)有結(jié)果的事情上浪費(fèi)時(shí)間了。 ——莫小北 時(shí)間已是初秋時(shí)分叮叹,此時(shí)三杯...
    我是莫小北閱讀 641評(píng)論 3 2