又大又粗又硬又爽又黄毛片,国产精品亚洲第一区在线观看,国产男同GAYA片大全,一二三四视频社区5在线高清

當前位置:網(wǎng)站首頁 >> 作文 >> 最新java虛擬機垃圾回收算法 虛擬機垃圾回收機制通用

最新java虛擬機垃圾回收算法 虛擬機垃圾回收機制通用

格式:DOC 上傳日期:2023-04-29 16:11:09
最新java虛擬機垃圾回收算法 虛擬機垃圾回收機制通用
時間:2023-04-29 16:11:09     小編:zdfb

人的記憶力會隨著歲月的流逝而衰退,寫作可以彌補記憶的不足,將曾經(jīng)的人生經(jīng)歷和感悟記錄下來,也便于保存一份美好的回憶。范文怎么寫才能發(fā)揮它最大的作用呢?下面我給大家整理了一些優(yōu)秀范文,希望能夠幫助到大家,我們一起來看一看吧。

java虛擬機垃圾回收算法 虛擬機垃圾回收機制篇一

生活垃圾收集運輸服務(wù)合同

推薦度:

年會收集節(jié)目通知

推薦度:

java程序員年終總結(jié)

推薦度:

檔案收集管理制度

推薦度:

事跡簡介

推薦度:

相關(guān)推薦

首先標記出所有需要回收的對象,標記完成后統(tǒng)一回收。

主要缺點: 1. 標記和清除效率都很低 2. 產(chǎn)生大量不連續(xù)的內(nèi)存碎片,導(dǎo)致后面分配大內(nèi)存空間失敗

將可用內(nèi)存劃分為大小相等的兩塊, 每次只使用其中一塊。 當這塊用完后,就將還存活對象復(fù)制到另外一塊上面,再把已經(jīng)使用的內(nèi)存空間一次清理掉。

主要缺點: 代價太高,至少一半的內(nèi)存不能使用。

標記過程和標記-清除算法一致,但是后續(xù)步驟是讓所有存活的對象都向一端移動,然后清理掉邊界以外的內(nèi)存。

當前商業(yè)虛擬機都采用此算法,分為不同對象代,去進行不同管理。【相關(guān)閱讀】

什么是java位運算

位運算允許對整數(shù)中的單個比特進行操作。位運算會對連個操作數(shù)中對應(yīng)的比特執(zhí)行布爾代數(shù)運算,并產(chǎn)生一個結(jié)果。

java中有3種位運算符:&(與) |(或) ^(異或) ~(非)

看例子說明位運算的過程:

public class test{

public static void main(string[] args){

int a=12|2; //1100|0010

n(a);

}

}

結(jié)果是14(1110)

位移運算操作的目標也是數(shù)字的二進制的位。用來操作位數(shù)的向左向右移動。

java種有3種基本的位移操作:

>>(右移) <<(左移)>>>(無符號右移)

<<:將操作符左邊的整數(shù)按位向左邊移動運算符右邊整數(shù)指定的位數(shù),在右邊添加0;

看例子:

public class test{

public static void main(string[] args){

int a=8<<1;

n(a);

}

}

8的二進制表示:00000000 00000000 00000000 00001000

左移1位后二進制:00000000 00000000 00000000 00010000 -> 14

結(jié)果為14

tip:左移相當于num*(2^n) 其中num為被移數(shù),n為移動的位數(shù)

>>:右移的道理也是一樣的,注意的是:若最高位為1,移動后最高位用1來填充,否則用0來填充。

例子:

int a=-8>>1;

n(a);

-8的二進制:11111111 11111111 11111111 11111000

右移后的二進制:11111111 11111111 11111111 11111100 -> -4

結(jié)果為-4

tip:右移相當于num/(2^n) 其中num為被移數(shù),n為移動的位數(shù)

>>>:無符號右移跟右移原理是一樣的,只是覆蓋位的覆蓋規(guī)則不同:不管最高位是0還是1,全部用0來填充。

例子:

int a=-8>>>1;

n(a);

-8的二進制:11111111 11111111 11111111 11111000

無符號右移后的二進制:01111111 11111111 11111111 11111100 -> 2147483644

tip:用無符號右移的時候要注意,絕對值很小的負數(shù)移動后都可能成為絕對值很大的正數(shù),這在大多數(shù)情況下沒意義。

奇葩的.例外:

那代碼:

int a=11>>32;

long b=12<<64;

n(a);

n(b);

int類型占32位,long類型占64位,這樣子的話,上面的例子輸出應(yīng)該都是0才對,因為剛好將有效位都移走了,但結(jié)果并不是這樣的。

輸出的結(jié)果是:11 12

這跟java對位移的底層操作機制有關(guān):

從結(jié)果可以看出兩個數(shù)都沒有變化,這是因為,在進行移位前,java首先將要移動的位數(shù)跟被移數(shù)的位數(shù)求余,然后去移動余數(shù)個位數(shù)。上面例子中,32對32求余,64對64求余,結(jié)果都是0,java系統(tǒng)對被移數(shù)進行0個位的移動,也就是沒

移動啦。

這樣子的話,看下下面的代碼:

int c=8>>33;

n(c);

因為int有32位,那么8實際上被移動的位數(shù)是:332=1;

就相當于:int c=8>>1;

結(jié)果自然是:4

s("content_relate");

【java虛擬機垃圾收集算法簡介】相關(guān)文章:

java虛擬機的故障處理摘要

11-23

java語言簡介

09-30

java虛擬機(jvm)和跨平臺原理

10-03

權(quán)重隨機算法的java實現(xiàn)

12-02

java中shuffle算法的使用

10-03

java語言編程簡介

09-29

java常見的排序算法的代碼

11-28

java數(shù)據(jù)結(jié)構(gòu)和算法筆記

11-27

java集合類基本簡介

12-08

全文閱讀已結(jié)束,如果需要下載本文請點擊

下載此文檔
a.付費復(fù)制
付費獲得該文章復(fù)制權(quán)限
特價:5.99元 10元
微信掃碼支付
已付款請點這里
b.包月復(fù)制
付費后30天內(nèi)不限量復(fù)制
特價:9.99元 10元
微信掃碼支付
已付款請點這里 聯(lián)系客服