java常見知識(shí)點(diǎn)

java源程序先經(jīng)過javac編譯器編譯成二進(jìn)制的.class字節(jié)碼文件(跨平臺(tái)指的是.class字節(jié)碼文件的跨平臺(tái)想邦,.class字節(jié)碼文件是與平臺(tái)無關(guān)的)译断,class文件運(yùn)行在jvm上非剃,java解釋器(jvm的一部分)會(huì)將其解釋成對(duì)應(yīng)平臺(tái)的機(jī)器碼執(zhí)行瞻颂。不同平臺(tái)上的jvm不同霜威,而在不同平臺(tái)上生成的class文件都是一樣的泣栈,而class文件再由對(duì)應(yīng)平臺(tái)的jvm解釋成對(duì)應(yīng)平臺(tái)的機(jī)器碼執(zhí)行眨猎。

JRE顧名思義是java運(yùn)行時(shí)環(huán)境遥缕,包含了java虛擬機(jī),java基礎(chǔ)類庫宵呛。是使用java語言編寫的程序運(yùn)行所需要的軟件環(huán)境单匣,是提供給想運(yùn)行java程序的用戶使用的。

JDK顧名思義是java開發(fā)工具包,是程序員使用java語言編寫java程序所需的開發(fā)工具包户秤,是提供給程序員使用的码秉。JDK包含了JRE,同時(shí)還包含了編譯java源碼的編譯器javac鸡号,還包含了很多java程序調(diào)試和分析的工具:jconsole转砖,jvisualvm等工具軟件,還包含了java程序編寫所需的文檔和demo例子程序鲸伴。

如果你需要運(yùn)行java程序府蔗,只需安裝JRE就可以了。如果你需要編寫java程序汞窗,需要安裝JDK姓赤。

HashMap最多只允許一條記錄的鍵為null,允許多條記錄的值為null仲吏,HashMap非線程安全不铆,即任一時(shí)刻可以有多個(gè)線程同時(shí)寫HashMap,可能會(huì)導(dǎo)致數(shù)據(jù)不一致裹唆。

在hashmap?做put?操作的時(shí)候誓斥,假如A線程和B線程同時(shí)對(duì)同一個(gè)數(shù)組位置調(diào)用addEntry,兩個(gè)線程會(huì)同時(shí)得到現(xiàn)在的頭結(jié)點(diǎn)许帐,然后A寫入新的頭結(jié)點(diǎn)之后劳坑,B也寫入新的頭結(jié)點(diǎn),那B的寫入操作就會(huì)覆蓋A的寫入操作造成A的寫入操作丟失成畦。同理泡垃,當(dāng)多線程對(duì)同一數(shù)組位置進(jìn)行remove操作時(shí)也會(huì)產(chǎn)生覆蓋。

CHM適用于讀者數(shù)量超過寫者時(shí)羡鸥,當(dāng)寫者數(shù)量大于等于讀者時(shí)蔑穴,CHM的性能是低于Hashtable和synchronized Map的。這是因?yàn)楫?dāng)鎖住了整個(gè)Map時(shí)惧浴,讀操作要等待對(duì)同一部分執(zhí)行寫操作的線程結(jié)束存和。CHM適用于做cache,在程序啟動(dòng)時(shí)初始化,之后可以被多個(gè)請(qǐng)求線程訪問衷旅。正如Javadoc說明的那樣捐腿,CHM是HashTable一個(gè)很好的替代,但要記住柿顶,CHM的比HashTable的同步性稍弱茄袖。

總結(jié):

? CHM允許并發(fā)的讀和線程安全的更新操作

? 在執(zhí)行寫操作時(shí),CHM只鎖住部分的Map

? 并發(fā)的更新是通過內(nèi)部根據(jù)并發(fā)級(jí)別將Map分割成小部分實(shí)現(xiàn)的

? 高的并發(fā)級(jí)別會(huì)造成時(shí)間和空間的浪費(fèi)嘁锯,低的并發(fā)級(jí)別在寫線程多時(shí)會(huì)引起線程間的競爭

? CHM的所有操作都是線程安全

? CHM返回的迭代器是弱一致性宪祥,fail-safe并且不會(huì)拋出ConcurrentModificationException異常

? CHM不允許null的鍵值

? 可以使用CHM代替HashTable聂薪,但要記住CHM不會(huì)鎖住整個(gè)Map

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蝗羊,隨后出現(xiàn)的幾起案子藏澳,更是在濱河造成了極大的恐慌,老刑警劉巖耀找,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翔悠,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡野芒,警方通過查閱死者的電腦和手機(jī)蓄愁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狞悲,“玉大人撮抓,你說我怎么就攤上這事⌒ё纾” “怎么了胀滚?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵趟济,是天一觀的道長乱投。 經(jīng)常有香客問我,道長顷编,這世上最難降的妖魔是什么戚炫? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮媳纬,結(jié)果婚禮上双肤,老公的妹妹穿的比我還像新娘。我一直安慰自己钮惠,他們只是感情好茅糜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著素挽,像睡著了一般蔑赘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上预明,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天缩赛,我揣著相機(jī)與錄音,去河邊找鬼撰糠。 笑死酥馍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的阅酪。 我是一名探鬼主播旨袒,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼汁针,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了峦失?” 一聲冷哼從身側(cè)響起扇丛,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎尉辑,沒想到半個(gè)月后帆精,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡隧魄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年卓练,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片购啄。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡襟企,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出狮含,到底是詐尸還是另有隱情顽悼,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布几迄,位于F島的核電站蔚龙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏映胁。R本人自食惡果不足惜木羹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望解孙。 院中可真熱鬧坑填,春花似錦、人聲如沸弛姜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽廷臼。三九已至苍在,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間中剩,已是汗流浹背忌穿。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留结啼,地道東北人掠剑。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像郊愧,于是被迫代替她去往敵國和親朴译。 傳聞我的和親對(duì)象是個(gè)殘疾皇子井佑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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

  • Java8張圖 11、字符串不變性 12眠寿、equals()方法躬翁、hashCode()方法的區(qū)別 13、...
    Miley_MOJIE閱讀 3,701評(píng)論 0 11
  • 在一個(gè)方法內(nèi)部定義的變量都存儲(chǔ)在棧中盯拱,當(dāng)這個(gè)函數(shù)運(yùn)行結(jié)束后盒发,其對(duì)應(yīng)的棧就會(huì)被回收,此時(shí)狡逢,在其方法體中定義的變量將不...
    Y了個(gè)J閱讀 4,416評(píng)論 1 14
  • 從三月份找實(shí)習(xí)到現(xiàn)在宁舰,面了一些公司,掛了不少奢浑,但最終還是拿到小米蛮艰、百度、阿里雀彼、京東壤蚜、新浪、CVTE徊哑、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,240評(píng)論 11 349
  • 一袜刷、基礎(chǔ)知識(shí):1、JVM实柠、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,378評(píng)論 0 4
  • 1.回歸中的異常值 考慮異常值水泉,假設(shè)線性回歸將最小化誤差的平方和善涨,那么哪個(gè)是最佳的線性回歸 2. 產(chǎn)生異常值的原因...
    esskeetit閱讀 1,888評(píng)論 0 1