编程语言
首页 > 编程语言> > Java基础.Day12

Java基础.Day12

作者:互联网

创建对象内存分析

Java对象是如何new出来的??

IDEA中创建了一个Pet类,在main方法中new了一个对象旺财

image-20210714155654350

这个类里面有main方法,常量池:旺财

image-20210714155853929

image-20210714160219279

里面有自己的属性,name,age,方法shout()

当前name=null,age=0

image-20210714160509512

dog放在栈里,只是一个引用变量名,真正的dog在堆里面

dog指向Pet,地址叫0001

默认name=null,age=0,方法shout()

image-20210714161004875

这个shout()方法new的时候调用了下面这个方法

image-20210714161124438

image-20210714161329792

image-20210714161435326

image-20210714161746590

其实是在栈中又加了一个引用变量名,指向堆中真实的cat

image-20210714161958252

所以

引用变量:本身在栈里面是个引用变量名,真正指向的是堆中具体的对象

和类一起加载,好处就是,所有的对象都可以用到它

image-20210714164441768

左边是栈,右边是堆,堆里面有个特殊的区域叫方法区

image-20210714164713553

类和对象总结

image-20210714194951443

 来源:b站狂神

标签:Java,name,Pet,基础,dog,shout,Day12,new,main
来源: https://www.cnblogs.com/ayuanstudy/p/15012680.html