public class Car {public static void main(String[] args) {Car car1 = new Car();
Car car2 = new Car();
System.out.println(car1 == car2); //false,故其hascode不同
System.out.println(car1.getClass() == car2.getClass()); //true,故其hascode相同
System.out.println(car1.getClass().getClassLoader()); //AppClassLoader
System.out.println(car1.getClass().getClassLoader().getParent()); //ExtClassLoader
}
}
SandBox機(jī)制public class Demo1 {
public static void main(String[] args) {
new Thread(()->{
},"adair");
}
//native:java本身無(wú)法完成,無(wú)方法體,需要調(diào)用底層
//native會(huì)進(jìn)入本地方法棧 → JNI → 本地方法庫(kù)
//JNI作用,擴(kuò)展java語(yǔ)言,融合不同編程語(yǔ)言為java使用。
//例如java驅(qū)動(dòng)打印機(jī),管理系統(tǒng),寫(xiě)外掛
private native void start0();
}
內(nèi)存
方法區(qū)JVM有三種hotspot
、J9VM
、JRockit
、
一個(gè)JVM只有一個(gè)堆,且堆內(nèi)存的大小可變
堆的東西:類(lèi)、方法、常量、變量、 真實(shí)對(duì)象
堆的三個(gè)區(qū)域:
新生區(qū):類(lèi)的誕生 + 甚至死亡的地方。
eden:對(duì)象被new的地方,滿了就會(huì)觸發(fā)輕GC,幸存者存放在s1
如果幸存區(qū)滿了,引發(fā)重GC(全局清理),送入養(yǎng)老區(qū)
如果養(yǎng)老區(qū)滿了,則OOM
永久區(qū):常駐內(nèi)存,存放JDK自身的Class對(duì)象。interface元數(shù)據(jù),存儲(chǔ)的是java運(yùn)行時(shí)的環(huán)境。這個(gè)區(qū)域無(wú)GC,關(guān)閉JVM即可釋放此區(qū)域。一個(gè)啟動(dòng)類(lèi),加載大量第三方j(luò)ar包,或者生成大量的反射類(lèi),直到OOM
元空間、永久區(qū)、方法區(qū)、常量池關(guān)系:java8 hotspot取消了永久區(qū)。方法區(qū)是一個(gè)規(guī)范,規(guī)范沒(méi)變,它就一直在,取而代之的是元空間,元空間存儲(chǔ)類(lèi)的元信息,靜態(tài)變量和常量池等并入堆中。
元空間:邏輯存在,物理不存在,
JVM調(diào)參:
public class Car {public static void main(String[] args) {//jvm試圖使用的大內(nèi)存
long l = Runtime.getRuntime().maxMemory();
//jvm初始化的內(nèi)存
long l1 = Runtime.getRuntime().totalMemory();
//默認(rèn)大為電腦內(nèi)存的1/4,初始化為1/64
System.out.println(l/(double)1024/1024);
System.out.println(l1/(double)1024/1024);
//jvm調(diào)參:-Xms1024m -Xmx2g -XX:+PrintGCDetails
}
}
Jprofiler在一個(gè)很大項(xiàng)目中,出現(xiàn)了OOM,OOM要想捕獲用Error e捕獲,如何使用專(zhuān)業(yè)工具排錯(cuò)
-Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
Thread Dump
可查看線程的main函數(shù)中具體第幾行出現(xiàn)錯(cuò)誤JVM的GC幾乎全部在堆中,對(duì)堆的清理大部分在eden區(qū)
內(nèi)存效率:復(fù)制算法 >標(biāo)記清除 >標(biāo)記壓縮 (時(shí)間復(fù)雜度)
內(nèi)存整齊度:復(fù)制算法 = 標(biāo)記壓縮 >標(biāo)記清除
內(nèi)存利用率:標(biāo)記壓縮 = 標(biāo)記清除 >復(fù)制算法
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
新聞標(biāo)題:JVM2.-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://jinyejixie.com/article10/coiddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、小程序開(kāi)發(fā)、網(wǎng)站維護(hù)、自適應(yīng)網(wǎng)站、商城網(wǎng)站、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容