這篇“Java對(duì)象在內(nèi)存中的結(jié)構(gòu)是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Java對(duì)象在內(nèi)存中的結(jié)構(gòu)是什么”文章吧。
固鎮(zhèn)網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,固鎮(zhèn)網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為固鎮(zhèn)千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的固鎮(zhèn)做網(wǎng)站的公司定做!
1、對(duì)象頭,分為MarkWord和KlassPoint。
MarkWord(標(biāo)記字段):默認(rèn)存儲(chǔ)對(duì)象的HashCode,代替年齡和鎖定標(biāo)記位置信息。它會(huì)根據(jù)對(duì)象的狀態(tài)重用自己的存儲(chǔ)空間,也就是說(shuō),MarkWord中存儲(chǔ)的數(shù)據(jù)會(huì)隨著鎖定標(biāo)記位置的變化而變化。
KlassPoint(類型指針):對(duì)象指向其類元數(shù)據(jù)的指針,虛擬機(jī)通過(guò)該指針確定該對(duì)象屬于哪一類。
2、實(shí)例數(shù)據(jù)。這部分主要是存儲(chǔ)數(shù)據(jù)信息和父類信息。
3、對(duì)齊填充。因?yàn)樘摂M機(jī)要求對(duì)象的起始地址是8字節(jié)的整數(shù)倍,所以填充數(shù)據(jù)不一定存在,只是為了字節(jié)對(duì)齊。
一個(gè)空對(duì)象占8個(gè)字節(jié),是因?yàn)閷?duì)齊填充的關(guān)系,不到8個(gè)字節(jié)對(duì)齊填充會(huì)幫助我們自動(dòng)完成。
實(shí)例
public class TestStudent { public static void main(String[] args) { int n = 10; //棧存儲(chǔ) int m = 10; //棧存儲(chǔ) Student stu = new Student(); //屬性賦值 stu.name="張三"; System.out.println(stu.name); //null 張三 System.out.println(stu.age); //0 //調(diào)用 String name = "ls"; //局部變量(常量池) String aaaa="ls"; String pwd = "123"; stu.login(name,pwd); System.out.println("name:"+name); //ls System.out.println("執(zhí)行"); } } class Student { // 屬性 String name; int age; //用戶登錄 // String userName; // String pwd; public void login(String userName,String pwd){ System.out.println(userName+"===="+pwd); //ls 123 } public void show() { System.out.println("姓名:" + name + ",年齡:" + age); } }
以上就是關(guān)于“Java對(duì)象在內(nèi)存中的結(jié)構(gòu)是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。