当前位置: 首页 > news >正文

程序执行堆栈执行模拟

所有的文件都是在硬盘(磁盘)上,调用时先调用javac指令的jdk编译成.class然后被java指令的jre送到内存中,java在内存中有自己的一片区域叫JVM,编译进来的文件首先进入方法区。

在这里插入图片描述
在这里插入图片描述

staitc的属性就是在进入内存的时候开辟了一个自己的空间可以进行操作,其他的属性都只是停留在图纸阶段不能直接操作被调用。

在这里插入图片描述

即非静态的还没有被造出来无法被使用。
在这里插入图片描述

注意调用函数都是拷贝的方法拷贝复制一份压栈,然后执行完了从上到下出栈。

在这里插入图片描述
在这里插入图片描述

从java Text_xc就开始调用主方法了,线程实质就是一个控制程序调用执行的栈(即,从第一个方法开始引起的一系列方法调用就是一个线程),多线程也就是创建多个栈,当线程中最后一个被调出时就销毁了,也就是栈伴随着不断地创建销毁。

在这里插入图片描述

操作系统里面的操作就是一个一个的索引,指向所分配的地址,然后不断地修改,如果删除就是把边界从有效改为无效。
main方法就是创造了一个栈。
“变量的声明就是入栈”
在这里插入图片描述

即,变量的作用域也是由栈控制的(一对大括号结束时大括号里面的变量要出栈)
在这里插入图片描述
在这里插入图片描述

控制什么时候}停止开始出栈,并不是将}入栈,因为符号都是以编码的形式存储的,靠的是一个叫计数器区域的地方进行控制的(也就是408里面后缀、中缀转换的那个实质,并不是符号入栈,而是靠的计数器区域)。
在这里插入图片描述

静态类不需要额外申请空间,但是对于非静态类要额外申请空间。
在这里插入图片描述

而引用类型的句柄和值不能在一起存储。

在这里插入图片描述

a3.name = “哈哈哈”;引用类型=就是修改指向(即,引用类型修改就是修改指向,而且改变的不是a3的指向而是a3里面的name的指向)。
在这里插入图片描述

这些字符串都不是new出来的,都是在常量池中。

在这里插入图片描述

对于调用方法,每一个对象里面都有一个方法。调用就是线程栈里拷贝一份压栈,执行完毕后出栈,所以对于非静态方法调用方法时要知道是那个对象调用的该方法。

在这里插入图片描述

调用静态方法,自己类的方法直接使用就可以,调用其他类的方法需要在方法前面加上类名。
即,既可以调用静态的也可以调用非静态的,只不过调用非静态的需要指定对象。
Person a1 = new Person();不对a1里的元素赋值时基本类型是0,引用类型是null(-1)。
基本类型在存的时候是几就是几,但是引用类型只存一个句柄,里面的具体内容另存在常量池里面。
在这里插入图片描述

凡是在方法中声名的变量都是在栈中(引用类型的句柄在栈中),并不是一看是基本类型就在堆中,要看在哪里定义的,方法外的在堆中,但方法内的随着方法在栈中。

相关文章:

程序执行堆栈执行模拟

所有的文件都是在硬盘(磁盘)上,调用时先调用javac指令的jdk编译成.class然后被java指令的jre送到内存中,java在内存中有自己的一片区域叫JVM,编译进来的文件首先进入方法区。 staitc的属性就是在进入内存的时候开辟了一…...

《Python基础》之数据加密模块hashlib的用法

目录 一、简介 二、用法 步骤一、导入hashlib库 步骤二、创建哈希对象 步骤三、往哈希对象中传值 1、可以在创建对象的时候传值 2、使用updata传值 步骤四、获取经过哈希对象加密后的值 三、注意事项 1、编码问题 2、安全性 3、多次传值 四、总结 一、简介 hashli…...

安装Fcitx5输入框架和输入法自动部署脚本(来自Mark24)-Ubuntu通用

在Ubuntu22.04上安装rime中文输入法的基本教程 上述文章接近废弃。 使用新逻辑配置基本的Fcitx5的输入法。 安装 第一步,下载相关组件 sudo nala install vim sudo nala install ruby sudo nala install fcitx5-rime第二步,设置语言为Fcitx5 而非 默认…...

【IMF靶场渗透】

文章目录 一、基础信息 二、信息收集 三、flag1 四、flag2 五、flag3 六、flag4 七、flag5 八、flag6 一、基础信息 Kali IP:192.168.20.146 靶机IP:192.168.20.147 二、信息收集 Nmap -sP 192.168.20.0/24 Arp-scan -l nmap -sS -sV -p- -…...

Zookeeper选举算法与提案处理概览

共识算法(Consensus Algorithm) 共识算法即在分布式系统中节点达成共识的算法,提高系统在分布式环境下的容错性。 依据系统对故障组件的容错能力可分为: 崩溃容错协议(Crash Fault Tolerant, CFT) : 无恶意行为,如进程崩溃,只要…...

深入了解 Adam 优化器对显存的需求:以 LLaMA-2 7B 模型为例 (中英双语)

中文版 深入了解 Adam 优化器对显存的额外需求:模型参数与优化器状态的显存开销分析 在深度学习模型的训练过程中,显存是一个关键的资源,尤其在处理大型语言模型或深度神经网络时。训练时的显存需求不仅包括模型参数本身,还涉及…...

数据分析学习

数据分析的定义 数据分析是通过对收集到的数据进行清理、转换、建模、分析和解释,从中提取有用的信息和洞察,以帮助做出更好的决策。数据分析可以应用于各种领域,比如商业、金融、医疗、市场营销等,目的是通过数据来发现模式、趋…...

PaddleOCR:一款高性能的OCR工具介绍

一、引言 随着人工智能技术的不断发展,光学字符识别(OCR)技术在各行各业得到了广泛应用。OCR技术能够将图片、扫描件等非结构化数据中的文字信息提取出来,转换为可编辑的文本格式。在我国,百度开源了一款优秀的OCR工具…...

Transformers快速入门代码解析(一):注意力机制——Attention:Scaled Dot-product Attention

Attention:Scaled Dot-product Attention 引言Scaled Dot-product Attention代码 引言 请注意!!!本博客使用了教程Transformers快速入门中的全部代码!!! 只在我个人理解的基础上为代码添加了注释…...

Git中HEAD、工作树和索引的区别

在Git版本控制系统中,HEAD、工作树(Working Tree)和索引(Index)是三个非常重要的概念,它们分别代表了不同的状态或区域,下面我将对这三个概念进行详细的解释。 HEAD 定义:HEAD是一…...

【python量化教程】如何使用必盈API的股票接口,获取最新实时交易数据

实时交易数据简介 股票实时交易数据涵盖股票价格、成交量、涨跌幅等多类信息。其在股票交易中极为关键,高速准确的数据对各方意义重大。投资者可借此及时捕捉机会、优化策略与降低风险;实时准确的实时交易数据是股票市场有效运转的核心要素之一。 使用…...

【C++】动态内存与智能指针——shared_ptr 和 new 结合使用

12.1.3 shared_ptr 和 new 结合使用 如上文所述,如果我们不初始化一个智能指针,那么它将会被初始化为一个空指针(需要注意的是,智能指针与普通指针在此处有着非常明显的区别。如果只声明某个类型的普通指针,而不对它进…...

遥感数据集:FTW全球农田边界和对应影像数据,约160万田块边界及7万多个样本

Fields of The World (FTW) 是一个面向农业田地边界实例分割的基准数据集,旨在推动机器学习模型的发展,满足全球农业监测对高精度、可扩展的田地边界数据的需求。该数据集由kerner-lab提供,于2024年8月28日发布,主要特征包括&…...

马斯克的 AI 游戏工作室:人工智能与游戏产业的融合新纪元

近日,马斯克在 X 平台(前身为 Twitter)发文称,“太多游戏工作室被大型企业所拥有,xAI 将启动一个 AI 游戏工作室,让游戏再次变得精彩”。这一言论不仅展示了马斯克对游戏行业现状的不满,也揭示了…...

URDF(描述机器人模型)和SDF(Gazebo中用于描述仿真环境)

使用URDF&#xff08;Unified Robot Description Format&#xff09; URDF是ROS中用于描述机器人模型的XML格式文件。你可以使用XML文件定义机器人的几何形状、惯性参数、关节和链接等。 示例URDF文件&#xff08;my_robot.urdf&#xff09;&#xff1a; <?xml version&…...

力扣380:O(1)时间插入、删除和获取随机数

实现RandomizedSet 类&#xff1a; RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时&#xff0c;向集合中插入该项&#xff0c;并返回 true &#xff1b;否则&#xff0c;返回 false 。bool remove(int val) 当元素 val 存在时&#xff0…...

【C++boost::asio网络编程】有关socket的创建和连接的笔记

socket的创建和连接 tcp客户端创建端点tcp服务端创建端点创建socket创建TCP 服务器端的 acceptor 套接字创建 acceptor 套接字并绑定客户端连接到服务器通过ip地址解析通过域名解析 服务端接收新连接 tcp客户端创建端点 int client_end_point() {std::string raw_ip_address …...

超级灵感:前端页面功能统一管理方案

前端页面功能统一管理方案 引言 我和朋友聊天想到一个灵感&#xff0c;关于支付状态机管理&#xff0c;这个类可以让我们知道具体上一个状态和下一个状态&#xff0c;这是由于那个事件触发改变&#xff0c;这个功能设计非常好&#xff01; 从而讨论出为什么我们不能把某一个…...

力扣第 77 题 组合

题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按任意顺序返回答案。 示例 示例 1 输入&#xff1a; n 4, k 2输出&#xff1a; [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]示例 2 输入&#xff1a; n 1, k …...

(超详细图文)PLSQL Developer 配置连接远程 Oracle 服务

1、下载配置文件 &#xff08;超详细图文详情&#xff09;Navicat 配置连接 Oracle-CSDN博客 将下载的文件解压到单独文件夹&#xff0c;如&#xff1a;D:\App\App_Java\Oracle\instantclient-basic-windows.x64-19.25.0.0.0dbru 2、配置 打开 PLSQL Developer&#xff0c;登…...

元器件选型与参数13 电源的分类-线性电源参数 RT9013 AMS1117 PCB布局布线

目录 一、线性电源 1、重要参数 2、线性电源效率一定低吗 3、线性电源并联扩流 4、常见电路 RT9013-LDO AMS1117-xx-LDO 5、布局布线 6、外置输入与电池供电 7、单片机控制其他模组供电实现低功耗 二、开关电源与线性电源配合 1、高效率与低噪声 DC-DC电源大致分为…...

RHEL7+Oracle11.2 RAC集群-多路径(multipath+udev)安装步骤

RHEL7Oracle11.2RAC集群-多路径&#xff08;multipathudev&#xff09;安装 配置虚拟存储 使用StarWind Management Console软件&#xff0c;配置存储 dggrid1: 1g*3 Dggrid2: 1g*3 Dgsystem: 5g*1 系统表空间&#xff0c;临时表空间&#xff0c;UNDO&#xff0c;参数文件…...

每日速记10道java面试题03

其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 目录 一、你使用过java的反射机制吗&#xff1f;如何应用反射&#xff1f; 二、什么是泛型&#xff1f;泛型的作用是什么&#xff1f; 三、java的泛型擦除是什么&#xff1f; 四、Java 中…...

Vue 3 的双向绑定原理

Vue 3 的双向绑定原理是基于 响应式系统 和 数据劫持 技术来实现的。在 Vue 3 中&#xff0c;双向绑定通常是通过 v-model 指令来完成的&#xff0c;它本质上是数据的双向同步&#xff1a;当数据改变时&#xff0c;视图自动更新&#xff0c;反之&#xff0c;视图的修改也会更新…...

如何使用 Chrome 无痕浏览模式访问网站?

无痕浏览&#xff08;Incognito Mode&#xff09;是 Google Chrome 浏览器提供的一种隐私保护功能&#xff0c;它允许用户在一个独立的会话中浏览网页&#xff0c;而不会记录用户的浏览历史、下载历史、表单数据等。这对于希望保护个人隐私或进行临时性匿名浏览的用户来说非常有…...

Idea 2024.3 突然出现点击run 运行没有反应,且没有任何提示。

写这篇文章的目的是为了提供一个新的解决思路&#xff0c;因为存在同病不同原因。 如果你进行了1. 检查运行配置 (Run Configuration) 2. 清理和重建项目 3. 清除缓存并重启 IDEA 4.排除kotlin 5.重装idea等等操作之后仍然没有解决&#xff0c;可以试着按一下步骤进行解决。 检…...

【小白学机器学习36】关于独立概率,联合概率,交叉概率,交叉概率和,总概率等 概念辨析的例子

目录 1 先说结论 2 联合概率 3 边缘概率 4 (行/列)边缘概率的和 总概率1 5 条件概率 5.1 条件概率的除法公式 5.2 条件概率和联合概率区别 1 先说结论 关于独立概率&#xff0c;联合概率&#xff0c;交叉概率&#xff0c;交叉概率和&#xff0c;总概率 类型含义 …...

Spring Boot 项目——分层架构

在创建一个 Spring Boot 项目时&#xff0c;为了提高代码的可维护性、可扩展性和清晰度&#xff0c;通常会按照一定的分层架构进行设计。常见的分层架构包括以下几层&#xff1a; 1. Controller 层&#xff08;Web 层&#xff09; 作用&#xff1a;接收用户请求&#xff0c;并…...

wordpress网站首页底部栏显示网站备案信息

一、页脚文件footer.php 例如&#xff0c;wordpress主题使用的是simple-life主题&#xff0c;服务器IP为192.168.68.89,在wordpress主题文件中有个页脚文件footer.php&#xff0c;这是一个包含网站页脚代码的文件。 footer.php 路径如下&#xff1a; /www/wwwroot/192.168.68…...

python面向对象编程练习

学生成绩管理系统 定义一个Student类&#xff0c;包括属性&#xff08;姓名、成绩&#xff09;和方法&#xff08;设置成绩、获取成绩、计算平均成绩&#xff09;。 实例化多个学生对象并调用方法。 功能说明&#xff1a; Student 类&#xff1a; init(self, name)&#xff1a;…...

建设网站的一般步骤/石家庄网站seo外包

去官网 xshell&#xff1a;https://www.netsarang.com/download/down_form.html?code522 xftp&#xff1a;https://www.netsarang.com/download/down_form.html?code523 选择Evaluation user / Home & School user 填入自己的邮箱&#xff0c;然后会收到一封邮件&#xf…...

网站全站模板/正规seo多少钱

我想使用串行com端口进行通信&#xff0c;并且每次调用read函数调用时都想实现超时。int filedesc open("dev/ttyS0", O_RDWR );read( filedesc, buff, len );编辑&#xff1a;我正在使用Linux OS。 如何使用选择函数调用实现&#xff1f;参见linux.die.net/man/2/s…...

网站估值/网站功能开发

在我们的日常工作生活中&#xff0c;许多时候需要将手机中的图片文字提取出来&#xff0c;然而很多人都不会&#xff0c;只会照着手打出来&#xff0c;但是这样做不仅效率不高&#xff0c;也很耗时。那么安卓华为手机如何识别图片中的文字&#xff1f;有没有什么快速简单的方法…...

wordpress 图片 说明 居中/电子商务网站

本文讲的是记一例“特殊”的运营商流量劫持强弹广告案例诊断&#xff0c;由于没有上HTTPS&#xff0c;国内最大的政府网站疑似遭遇流量劫持&#xff0c;被恶意弹窗涉嫌色情的广告。 一份网上传播的文档截图中记录了整个事件经过。在这份《关于xx院app中h5页面弹出广告的专题会议…...

哈尔滨网站基础优化/百度运营优化师

for循环的作用&#xff1a;注意&#xff1a;要主要满足条件一和二后是先执行语句&#xff0c;后再执行条件三。简单重复的输出for(int i0&#xff1b;i<10;i){printf("对一句话简单重复输出输出10");printf("\n")&#xff1b;}其基本结构&#xff1a;(如…...

网站的建设与管理/武汉做seo

Linux 启动过程 实模式时内存分配 从实模式切换到保护模式 启用分段&#xff0c;就是在内存里面建立段描述符表&#xff0c;将寄存器里面的段寄存器变成段选择子&#xff0c;指向某个段描述符&#xff0c;这样就能实现不同进程的切换了。启动分页。能够管理的内存变大了&#…...