首頁 > Java > java教程 > 主體

Java物件在記憶體中的結構是什麼

PHPz
發布: 2023-04-30 13:31:14
轉載
1249 人瀏覽過

1、物件頭,分為MarkWord和KlassPoint。

MarkWord(標記欄位):預設儲存物件的HashCode,取代年齡和鎖定標記位置資訊。它會根據物件的狀態重複使用自己的儲存空間,也就是說,MarkWord中儲存的資料會隨著鎖定標記位置的變化而改變。

KlassPoint(類型指針):物件指向其類別元資料的指針,虛擬機器透過該指針確定該物件屬於哪一類。

2、實例資料。這部分主要是儲存資料資訊和父類資訊。

3、對齊填滿。因為虛擬機器要求物件的起始位址是8位元組的整數倍,所以填充資料不一定存在,只是為了位元組對齊。

一個空物件佔8個位元組,是因為對齊填滿的關係,不到8個位元組對齊填滿會幫助我們自動完成。

實例

public class TestStudent {
public static void main(String[] args) {
int n = 10;  //栈存储
int m = 10;  //栈存储
Student stu = new Student();
//属性赋值
stu.name="张三";
System.out.println(stu.name);  //null   张三
System.out.println(stu.age);   //0  
//调用
String name = "ls";   //局部变量(常量池)
String aaaa="ls";
String pwd = "123";
stu.login(name,pwd);
System.out.println("name:"+name);   //ls
System.out.println("执行");
}
}
 
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);
}
}
登入後複製

以上是Java物件在記憶體中的結構是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板