String和java虛擬機

1.StringBuilder盗似、String酱塔、StringBuffer

buffer: 緩沖? ? ? ? ?append? :附加 增補

String類是不可變類沥邻,任何對String的改變都 會引發(fā)新的String對象的生成

StringBuffer則是可變類,任何對它所指代的字符串的改變都不會產(chǎn)生新的對象羊娃。

StringBuffer和StringBuilder類的區(qū)別也是如此唐全,他們的原理和操作基本相同,區(qū)別在于StringBufferd支持并發(fā)操作蕊玷,線性安全的邮利,適 合多線程中使用。StringBuilder不支持并發(fā)操作垃帅,線性不安全的延届,不適合多線程中使用。新引入的StringBuilder類不是線程安全的贸诚,但其在單線程中的性能比StringBuffer高方庭。

StringBuilder的操作速度很快,在單線程情況下使用很好酱固。



2.java虛擬機及其內(nèi)部結(jié)構(gòu)

????????Java語言的一個非常重要的特點就是與平臺的無關(guān)性二鳄。而使用Java虛擬機是實現(xiàn)這一特點的關(guān)鍵。一般的高級語言如果要在不同的平臺上運行媒怯,至少需要編譯成不同的目標代碼。而引入Java語言虛擬機后髓窜,Java語言在不同平臺上運行時不需要重新編譯扇苞。Java語言使用模式Java虛擬機屏蔽了與具體平臺相關(guān)的信息欺殿,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(字節(jié)碼,16進制)鳖敷,就可以在多種平臺上不加修改地運行脖苏。Java虛擬機在執(zhí)行字節(jié)碼時,把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行定踱。

JAVA虛擬機運行時數(shù)據(jù)區(qū):


總圖
總圖


內(nèi)存區(qū)域的線程是否共享

棧結(jié)構(gòu)

棧:

存儲局部變量的地方棍潘。每個線程都會分到一部分棧的空間。

? ? ? ?棧幀:每個線程占用的一個空間崖媚,因為多個線程占用多個空間亦歉,每片空間就叫一個棧幀。

每個棧幀中都包含以下四個部分:

? ? ? ? 1.方法出口畅哑,即執(zhí)行完當(dāng)前線程后肴楷,回到main線程或者其他線程。

? ? ? ? 2.操作數(shù)棧:存儲數(shù)據(jù)

? ? ? ? 3.局部變量表:給數(shù)據(jù)分配的存儲空間

? ? ? ? 4:動態(tài)鏈表

程序計數(shù)器:

目的是為了記錄當(dāng)前線程的程序運行到的位置荠呐。該線程被中斷后赛蔫,記錄下程序執(zhí)行到的位置。再恢復(fù)時繼續(xù)在這里執(zhí)行就行泥张。



堆的年代

堆:

堆中存儲的是對象呵恢。分為老年代和年輕代,老年代存儲空間占了總的2/3媚创。

? gc :garbage collect 垃圾收集?

堆中的垃圾對象:

所存在的線程結(jié)束了渗钉,其數(shù)據(jù)也都銷毀了,其指針也都銷毀了筝野。沒用了晌姚,留在堆浪費內(nèi)存。


系統(tǒng)如何判斷垃圾對象(minor gc)歇竟?

答:可使用可達性算法挥唠,從GC root根(對象)出發(fā),尋找它的引用焕议。當(dāng)gc root根沒了宝磨,或者說是,原來被引用的東西盅安,現(xiàn)在沒人使用他們了唤锉,他們就變成了垃圾對象。


對象每經(jīng)歷一次minor gc别瞭,即逃過以此垃圾清理窿祥,GC 分代年齡就加1.


對象的結(jié)構(gòu)

從上圖可以看出,一個對象蝙寨,即objiect包含的不僅僅時在java代碼表面上看起來那么簡單晒衩,除了能見到的數(shù)據(jù)和方法之外嗤瞎。還有Klass Pointer(指明時哪個類的對象)、GC分代年齡等等關(guān)鍵信息听系。



方法區(qū):

方法區(qū)存放的主要是Class贝奇,而堆存放的主要是實例化對象。棧中存放的是對象的引用reference靠胜。


引用掉瞳、實例化對象、類

Java本地方法

圖中的本地方法棧的作用:

本地方法就是方法名前有native標記浪漠。意義是通過該java語句去調(diào)用c語言的方法陕习。本地方法棧就是存儲本地方法的信息的。java創(chuàng)建線程時就需要調(diào)用本地方法郑藏,用c語言去創(chuàng)建操作系統(tǒng)線程衡查。




?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市必盖,隨后出現(xiàn)的幾起案子拌牲,更是在濱河造成了極大的恐慌,老刑警劉巖歌粥,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塌忽,死亡現(xiàn)場離奇詭異,居然都是意外死亡失驶,警方通過查閱死者的電腦和手機土居,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嬉探,“玉大人擦耀,你說我怎么就攤上這事∩蹋” “怎么了眷蜓?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胎围。 經(jīng)常有香客問我吁系,道長,這世上最難降的妖魔是什么白魂? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任汽纤,我火速辦了婚禮,結(jié)果婚禮上福荸,老公的妹妹穿的比我還像新娘蕴坪。我一直安慰自己,他們只是感情好敬锐,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布辞嗡。 她就那樣靜靜地躺著捆等,像睡著了一般。 火紅的嫁衣襯著肌膚如雪续室。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天谒养,我揣著相機與錄音挺狰,去河邊找鬼。 笑死买窟,一個胖子當(dāng)著我的面吹牛丰泊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播始绍,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瞳购,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了亏推?” 一聲冷哼從身側(cè)響起学赛,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吞杭,沒想到半個月后盏浇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡芽狗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年绢掰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片童擎。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡滴劲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出顾复,到底是詐尸還是另有隱情班挖,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布捕透,位于F島的核電站聪姿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏乙嘀。R本人自食惡果不足惜末购,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虎谢。 院中可真熱鬧盟榴,春花似錦、人聲如沸婴噩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至迅办,卻和暖如春宅静,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背站欺。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工姨夹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人矾策。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓磷账,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贾虽。 傳聞我的和親對象是個殘疾皇子逃糟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

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