成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

【全棧之路】JAVA基礎(chǔ)課程二_數(shù)據(jù)類(lèi)型和垃圾回收機(jī)制(20190611v1.0)

big_cat / 2927人閱讀

摘要:,用于調(diào)用垃圾收集器,在調(diào)用時(shí),垃圾收集器將運(yùn)行以回收未使用的內(nèi)存空間。然而調(diào)用附帶一個(gè)免責(zé)聲明,無(wú)法保證對(duì)垃圾收集器的調(diào)用。所以并不能說(shuō)是完美主動(dòng)進(jìn)行了垃圾回收。

歡迎進(jìn)入JAVA基礎(chǔ)課程

博客地址:https://blog.csdn.net/houjiyu...
本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸JAVA開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)廣大同行帶來(lái)一些幫助。若有問(wèn)題請(qǐng)及時(shí)留言或加QQ:243042162。

寄語(yǔ):
經(jīng)歷過(guò)國(guó)考、省考,參加過(guò)各種證書(shū)考試,無(wú)疑對(duì)于上了年紀(jì)的人來(lái)說(shuō)時(shí)刻有著莫大的危機(jī)感,時(shí)刻想著如何擺脫目前的困境。經(jīng)常跟身邊的同事去討論20年后你在這個(gè)行業(yè)處于什么位置,當(dāng)想想如果20年后還處于現(xiàn)在的位置是多么可怕的一件事情。悟性可以差點(diǎn),時(shí)間可晚點(diǎn),但學(xué)習(xí)跟積累必須跟上,與時(shí)俱進(jìn),搬磚人才可能脫胎換骨,收割事業(yè)的成就感與滿足感。
數(shù)據(jù)類(lèi)型

1. 基礎(chǔ)數(shù)據(jù)類(lèi)型:

數(shù)值型

整型數(shù)據(jù)(byte |short |int |long)

浮點(diǎn)類(lèi)型(float |double)

字符型(char)

布爾型(boolean)

2. 引用數(shù)據(jù)類(lèi)型:

類(lèi)(class)

接口(interface)

數(shù)組

注意事項(xiàng)
&:左右都判斷,可作位運(yùn)算和邏輯與運(yùn)算符
&&:左假則結(jié)束,左真判斷右,可作邏輯與運(yùn)算符
垃圾回收機(jī)制

之前網(wǎng)絡(luò)上見(jiàn)過(guò)兩個(gè)很搞笑的圖比喻C語(yǔ)言和JAVA之間的垃圾回收機(jī)制,如下圖所示

C語(yǔ)言

JAVA語(yǔ)言

(1)C的垃圾回收是人工的,工作量大,但是可控性高。
(2)JAVA是自動(dòng)化的,但是可控性很差,甚至有時(shí)會(huì)出現(xiàn)內(nèi)存溢出的情況。
(3)System.gc(),用于調(diào)用垃圾收集器,在調(diào)用時(shí),垃圾收集器將運(yùn)行以回收未使用的內(nèi)存空間。它將嘗試釋放被丟棄對(duì)象占用的內(nèi)存。然而System.gc()調(diào)用附帶一個(gè)免責(zé)聲明,無(wú)法保證對(duì)垃圾收集器的調(diào)用。所以System.gc()并不能說(shuō)是完美主動(dòng)進(jìn)行了垃圾回收。
1. 確定哪些對(duì)象要進(jìn)行回收

經(jīng)典算法:引用計(jì)數(shù)法、可達(dá)性分析算法

2. 什么時(shí)候進(jìn)行回收

會(huì)在cpu空閑的時(shí)候自動(dòng)進(jìn)行回收

在堆內(nèi)存存儲(chǔ)滿了之后

主動(dòng)調(diào)用System.gc()后嘗試進(jìn)行回收

3. 如何回收

相關(guān)算法:標(biāo)記-清除算法、復(fù)制算法、標(biāo)記-整理算法、分代收集算法

標(biāo)記-清除算法 (效率和內(nèi)存碎片問(wèn)題):這是最基礎(chǔ)的一種算法,分為兩個(gè)步驟,第一個(gè)步驟就是標(biāo)記,也就是標(biāo)記處所有需要回收的對(duì)象,標(biāo)記完成后就進(jìn)行統(tǒng)一的回收掉哪些帶有標(biāo)記的對(duì)象。這種算法優(yōu)點(diǎn)是簡(jiǎn)單,缺點(diǎn)是效率問(wèn)題,還有一個(gè)最大的缺點(diǎn)是空間問(wèn)題,標(biāo)記清除之后會(huì)產(chǎn)生大量不連續(xù)的內(nèi)存碎片,當(dāng)程序在以后的運(yùn)行過(guò)程中需要分配較大對(duì)象時(shí)無(wú)法找到足夠的連續(xù)內(nèi)存而造成內(nèi)存空間浪費(fèi)。

復(fù)制算法(適用于對(duì)象存活率低的場(chǎng)景) :復(fù)制將可用內(nèi)存按容量劃分為大小相等的兩塊,每次只使用其中的一塊。當(dāng)這一塊的內(nèi)存用完了,就將還存活著的對(duì)象復(fù)制到另外一塊上面,然后再把已使用過(guò)的內(nèi)存空間一次清理掉。這樣使得每次都是對(duì)其中的一塊進(jìn)行內(nèi)存回收,內(nèi)存分配時(shí)也就不用考慮內(nèi)存碎片等復(fù)雜情況。只是這種算法的代價(jià)是將內(nèi)存縮小為原來(lái)的一半。

標(biāo)記整理算法(適用于對(duì)象存活率高的場(chǎng)景) :標(biāo)記整理算法與標(biāo)記清除算法很相似,但最顯著的區(qū)別是:標(biāo)記清除算法僅對(duì)不存活的對(duì)象進(jìn)行處理,剩余存活對(duì)象不做任何處理,造成內(nèi)存碎片;而標(biāo)記整理算法不僅對(duì)不存活對(duì)象進(jìn)行處理清除,還對(duì)剩余的存活對(duì)象進(jìn)行整理,重新整理,因此其不會(huì)產(chǎn)生內(nèi)存碎片。

分代收集算法 (根據(jù)存活周期分為不同的幾塊):分代收集算法是一種比較智能的算法,也是現(xiàn)在jvm使用最多的一種算法,他本身其實(shí)不是一個(gè)新的算法,而是他會(huì)在具體的場(chǎng)景自動(dòng)選擇以上三種算法進(jìn)行垃圾對(duì)象回收。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74935.html

相關(guān)文章

  • 全棧之路JAVA基礎(chǔ)課程_集合(20190615v1.0

    摘要:歡迎進(jìn)入基礎(chǔ)課程博客地址本系列文章將主要針對(duì)一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)廣大同行帶來(lái)一些幫助。是同步的,而不是。因此,更適合于單線程環(huán)境,而適合于多線程環(huán)境。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總...

    dkzwm 評(píng)論0 收藏0
  • 全棧之路JAVA基礎(chǔ)課程_集合(20190615v1.0

    摘要:歡迎進(jìn)入基礎(chǔ)課程博客地址本系列文章將主要針對(duì)一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)廣大同行帶來(lái)一些幫助。是同步的,而不是。因此,更適合于單線程環(huán)境,而適合于多線程環(huán)境。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總...

    tain335 評(píng)論0 收藏0
  • 全棧之路JAVA基礎(chǔ)課程_Mysql事物隔離級(jí)別(20190624v1.0

    摘要:注意不僅可以控制事務(wù)傳播行為等,還可以控制事務(wù)隔離級(jí)別等。事物的隔離級(jí)別隔離級(jí)別越高,并發(fā)性能越低。在的隔離級(jí)別下,會(huì)出現(xiàn)幻讀的問(wèn)題??纱谢亲罡叩母綦x級(jí)別。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://mp.csdn.net/mdeditor/...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸JAVA開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)...

    niuxiaowei111 評(píng)論0 收藏0
  • 全棧之路JAVA基礎(chǔ)課程_Mysql事物隔離級(jí)別(20190624v1.0

    摘要:注意不僅可以控制事務(wù)傳播行為等,還可以控制事務(wù)隔離級(jí)別等。事物的隔離級(jí)別隔離級(jí)別越高,并發(fā)性能越低。在的隔離級(jí)別下,會(huì)出現(xiàn)幻讀的問(wèn)題。可串行化是最高的隔離級(jí)別。 歡迎進(jìn)入JAVA基礎(chǔ)課程 博客地址:https://mp.csdn.net/mdeditor/...本系列文章將主要針對(duì)JAVA一些基礎(chǔ)知識(shí)點(diǎn)進(jìn)行講解,為平時(shí)歸納所總結(jié),不管是剛接觸JAVA開(kāi)發(fā)菜鳥(niǎo)還是業(yè)界資深人士,都希望對(duì)...

    twohappy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<