Java实例化对象内存分配

系统管理员 2023-06-03 07:00 70阅读 0赞

1、堆内存与栈内存:
如果想对对象操作的过程进行内存分析,首先要了解两块内存空间的概念:
堆内存:保存每一个对象的属性内容,堆内存需要用关键字new才能开辟。
栈内存:保存的是一块堆内存的地址。
堆内存很好理解,可能有人会有疑问为什么会有栈内存,举个例子,好比学校有很多教室,每个教室有一个门牌号,教室内放了很多的桌椅等等,这个编号就好比地址,老师叫小明去一个教室拿东西,老师必须把房间号告诉小明才能拿到,也就是为什么地址必须存放在一个地方,而这个地方在计算机中就是栈内存。

2、对象空属性:
我们先实例化一个对象,并对其的属性不设置任何值

public class Test{
public static void main(String args[]){
Book book = new Book();
book.getInfo();
}
}
运行结果如下:
name:null;price:0.0
其内存变化图如下:
70

  1. 使用关键字**new**就在栈内存中开辟一个空间存放book对象,并且指向堆内存的一个空间,此时并未对其赋值,所以始终指向默认的堆内存空间。

3、操作对象属性:
我们先声明并实例化Book类,并对实例出的book对象操作其属性内容。

public class Test{
public static void main(String args[]){
Book book = new Book();
book.name = “深入理解JVM”;
book.price = 99.8;
book.getInfo();
}
}
编译执行后的结果如下:
name:深入理解JVM;price:99.8
内存变化图如下:
70 1

发表评论

表情:
评论列表 (有 0 条评论,70人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java实例对象内存分配

    1、堆内存与栈内存:        如果想对对象操作的过程进行内存分析,首先要了解两块内存空间的概念: 堆内存:保存每一个对象的属性内容,堆内存需要用关键字new才能开