JVM虚拟机:通过一个例子解释JVM中栈结构的使用

代码

代码解析

main方法执行,创建栈帧并压栈。

int d=8,d为局部变量,是基础类型,它位于虚拟机栈的局部变量表中

然后创建了一个TestDemo的对象,这个对象在堆中,并且这个对象的成员变量(day,month,year)也在堆中,test为对象引用,位于虚拟机栈的局部变量表中。

之后执行test.change(d),当调用change时,会创建一个栈帧并且压栈,然后i为局部变量,位于虚拟机栈的局部变量表。当方法change执行完成后,栈帧出栈,i也就消失了,该栈帧可以被回收。

之后执行BirthDate d1= new BirthDate(3,10,1996); d1为对象引用,位于虚拟机栈的局部变量表中,对象new BirthDate()存在堆中,调用构造方法,创建栈帧并压栈,栈帧中的局部变量表存储了基础类型int的day,month,year。而day,month,year为成员变量,它们存储在堆中(new BirthDate()里面)。当BirthDate构造方法执行完之后,栈帧出栈,day,month,year将从栈中消失,栈帧可被回收。

当main方法执行完之后,d变量,test,d1引用都在栈帧中,栈帧出栈,可被回收,堆中的new Test(),new BirthDate()将等待垃圾回收。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/126460.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

京东API获得JD商品详情 item_get-获得JD商品详情

item_get-获得JD商品详情 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)获取key和secret接入secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_sear…

mysql之基础语句

数据库的列类型 int:整型 用于定义整数类型的数据 float:单精度浮点4字节32位 准确表示到小数点后六位 double:双精度浮点8字节64位 char:固定长度的字符类 用于定义字符类型数据&…

深入理解计算机系统CS213学习笔记

Lecture 01 1. 计算机表示数字 int 整数运算可能会出现错误,超过32位时会出现溢出。 float 浮点数不适用结合律,因为浮点数表示的精度有限。 根其原因,是用有限的位数表示无限的数字空间。 2.利用分层的存储系统,使程序运行更…

从用户角度出发,如何优化大数据可视化体验|北京蓝蓝UI设计公司

作者:蓝蓝设计-鹤鹤 大数据已经成为人们探索世界的新工具。但是,对于普通用户而言,大数据往往比较抽象和难以理解,因此,大数据可视化作为一种非常有效的工具工具被广泛应用。然而,在实际应用中&#xff0c…

【java学习—十一】泛型(1)

文章目录 1. 为什么要有泛型Generic2. 泛型怎么用2.1. 泛型类2.2. 泛型接口2.3. 泛型方法 3. 泛型通配符3.1. 通配符3.2. 有限制的通配符 1. 为什么要有泛型Generic 泛型,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过…

前端react入门day02-React中的事件绑定与组件

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 React中的事件绑定 React 基础事件绑定 使用事件对象参数 传递自定义参数 同时传递事件对象和自定义参…

nvm安装步骤

注意事项 不要安装任何版本的node.js,有的话卸载干净!注意:要卸载干净了! 安装步骤: nvm下载 点击exe文件安装 安装目录选择:D:\NVM 下一步创建nodejs文件放在D:\NVM 下,然后一直next到最后 …

亿咖通·天穹Pro行泊一体智能驾驶计算平台正式量产

全球出行科技公司亿咖通科技宣布,旗下首款智能驾驶计算平台——亿咖通•天穹Pro行泊一体智能驾驶计算平台(以下简称“该平台”)已向车企正式量产交付。作为亿咖通科技在智能驾驶领域的全新突破,亿咖通•天穹Pro智能驾驶计算平台以…

柯桥专升本学校,自考本科文凭的价值如何?

自考本科文凭的价值如何? 自考本科学历是通过独立学习和考试获得的一种本科学历。对于自考本科学历的价值,很多人感到困惑,那么究竟自考本科学历有多大的价值呢? 首先,在就业市场上,自考本科学历具有一定的竞争力。随…

WPF RelativeSource属性-目标对象类型易错

上一篇转载了RelativeSource的三种用法,其中第二种用法较常见,这里记录一下项目中曾经发生错误的地方,以防自己哪天忘记了,又犯了同样错误—WPF RelativeSource属性-CSDN博客 先回顾一下: 控件关联其父级容器的属性—…

iOS实现弹簧放大动画

效果图 实现代码 - (void)setUpContraints {CGFloat topImageCentery (SCREEN_HEIGHT - 370 * PLUS_SCALE) / 2;[self.topIconView mas_makeConstraints:^(MASConstraintMaker *make) {make.centerX.mas_equalTo(0);make.centerY.equalTo(self.view.mas_top).with.offset(t…

本地仓库转为git仓库推送到gitee

通常有两种获取 Git 项目仓库的方式: 方式一:将尚未进行版本控制的本地目录转换为 Git 仓库; 方式二:从其它服务器 克隆 一个已存在的 Git 仓库。 两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。 方式一&#xff1a…

【Linux进程】先谈硬件—冯诺依曼体系结构

目录 冯诺依曼体系 冯诺依曼体系结构 冯诺依曼体系的工作流程 为什么一个程序要运行,必须的先加载到内存中运行? 从软件数据流角度理解冯诺依曼 冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器&#xff0c…

XML External Entity-XXE-XML实体注入

XML 实体? XML 实体允许定义标签,在解析 XML 文档时这些标签将被内容替换。一般来说,实体分为三种类型: 内部实体 外部实体 参数实体。 必须在文档类型定义(DTD)中创建实体 一旦 XML 文档被解析器处理,它将js用定义的常量“Jo Smith”替换定义的实体。正如您所看到…

获取Webshell方法

CMS系统指的是内容管理系统。已经有别人开发好了整个网站的前后端,使用者只需要部署cms,然后通过后台添加数据,修改图片等工作,就能搭建好一个的WEB系统。 CMS获取Webshell方法 WordPress后台拿Webshell phpcms拿Webshell 非CMS…

IDEA优雅自动生成类注释和快捷键生成方法注释

生成类注释 Preferences->Editor->File and Code Templates-> Includes ->File Header 注释模板: /*** Classname ${NAME}* Description ${description}* Date ${DATE} ${TIME}* Created by ZouLiPing*/生成方法和字段注释 查看IDEA自动配置java快捷…

企业如何在自媒体平台推广

自媒体是企业宣传品牌的平台之一,在自媒体平台上企业能够较为自由的决定文案内容发布时间,同时后台也会有专门的数据分析帮助企业了解每一次推广效果,成本可控、数据可查、效果可追踪,还能与用户或者潜在用户互动,进行…

疑难杂症-暂时不能解析域名“mirrors.tuna.tsinghua.edu.cn”

可能是太久没用Ubuntu了,总是有一些莫名其妙的问题 我的方法简单粗暴:不需要重启,打开终端,输入sudo apt-get update,解析成功 还有一些别的方法,不过我也没试过 修改/etc/resolv.conf还是修改/etc/resol…

大厂面试题-什么是服务网格?

概述 服务网格这个概念出来很久了,从2017年被提出来,到2018年正式爆发,很多云厂商和互联网企业都在纷纷向服务网格靠拢。像蚂蚁集团、美团、百度、网易等一线互联网公司,都有服务网格的落地应用。 服务网格是微服务架构的更进一…

面试算法49:从根节点到叶节点的路径数字之和

题目 在一棵二叉树中所有节点都在0~9的范围之内,从根节点到叶节点的路径表示一个数字。求二叉树中所有路径表示的数字之和。例如,图8.4的二叉树有3条从根节点到叶节点的路径,它们分别表示数字395、391和302,这3个数字…