java项目运行时堆栈情况

15 篇文章 0 订阅
本文探讨了Java项目运行时的堆栈情况,包括new类对象时的内存分配,成员变量与方法的存储,对象赋值的实质以及类作为参数和返回值时的处理。重点讲解了堆和栈中对象及其方法的存取机制,强调了对象地址值在传递和调用中的关键作用。
摘要由CSDN通过智能技术生成

java项目运行时堆栈情况

在看视频的时候对了解到的知识进行总结,加深记忆,有看到错误的希望大家指出,一起学习。

1.当new一个类时

在这里插入图片描述
此处给出了三个类,其中有三个成员变量以及两个成员方法,当项目运行时,首先会运行main方法,将main方法写入栈(stack)中,而phone类整体在方法体中,当需要的时候在调用。

1.Phone one=new Phone();
new了一个变量one,将Phone中的内容放入堆中,但是这里要注意的是,堆中并不是放入Phone中所有的内容,只是将其中的成员变量放入,而其中的成员方法并没有放入堆中,而是将成员方法在方法体中的地址放入堆中。

2.one.call(“111”);
当要调用到Phone中的成员方法时,在从堆中取出对应地址的方法,调入栈中,当该方法运行完成之后,就从栈中调出。

2.给另一个类赋值时

在这里插入图片描述
此处的Phone two=one;
实际上就是将one的地址赋值给two,使two也指向堆中和one同一块地址区。

3.当一个类对象作为参数时

其在参数中传递的实际上是对象的地址值。
在这里插入图片描述

4.类作为方法的返回值

函数的返回值其实为对象的地址值,大题的过程同类对象作为参数的情况相同。
在这里插入图片描述

static在堆栈中的情况

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值