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

Java内存模型

Java内存模型全称JMM(Java Memory Model)
内存主要有堆和栈组成
在这里插入图片描述
下面来一段demo代码详细讲解堆栈的作用,以及流程

public class Employee {private String name;private Integer age;private Department department;public Employee(){}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Department getDepartment() {return department;}public void setDepartment(Department department) {this.department = department;}public void sayJoke(String content){System.out.println(this.getName() + "说" + content);}public static void main(String[] args) {Employee emp = new Employee();emp.setName("老齐");emp.setAge(13);Department department = new Department();department.setDname("小卖部");emp.setDepartment(department);emp.sayJoke("一言不合就开车");}
}class Department{private String dname;public String getDname() {return dname;}public void setDname(String dname) {this.dname = dname;}
}

1.运行方法前进行类的加载,加载到employee和department这两个类,把这两个类的结构,成员变量和成员方法加载到方法区(方法区静态还会存储静态的方法和变量
2.启动main方法,创建一个线程,会开辟一个栈空间,压入mian方法的栈(栈帧:每执行一个方法就会有一个对应的栈帧
3.emp = new Empolyee(); 创建对象,存储在堆空间,将栈地址指向开辟的堆空间(也可以叫做引用
4.emp.setName(“老齐”);先在方法区创建字符串"老齐",然后将字符串引用到name属性上,setName()方法的栈帧执行完,就会出栈
5.emp.setAge(13);数字按值引用,直接赋值,不需要在静态区开辟新空间
6.dept = new Department();同上3
7.dept.setDname(“小卖铺”);同上4
8.emp.setDepartment(dept);Employee对象的department属性直接指向Department对象的地址(也可以叫做地址被属性所引用)
9.emp.sayJoke(“一言不合就开车”)
10.方法执行完成,站内栈帧全部弹出,线程销毁

在这里插入图片描述

相关文章:

Java内存模型

Java内存模型全称JMM(Java Memory Model) 内存主要有堆和栈组成 下面来一段demo代码详细讲解堆栈的作用,以及流程 public class Employee {private String name;private Integer age;private Department department;public Employee(){}pub…...

[国产MCU]-BL602开发实例-看门狗定时器(WDG)

看门狗定时器(WDG) 文章目录 看门狗定时器(WDG)1、看门狗定时器(WDG)介绍2、看门狗定时器驱动API介绍3、看门狗定时器使用实例看门狗(Watchdog),又叫看门狗定时器(Watchdog Timer),是一种硬件的计时设备,当系统的主程序发生某些错误时,导致未及时清除看门狗计时器…...

28 | Boss直聘数据分析

针对boss直聘网的招聘信息,然后分析互联网发展排名前十的城市在互联网方面职位的薪水,学历要求,经验要求,等等信息。 准备从以下几个方面进行分析: (1)各个城市的平均工资 (2)各个学历的平均工资 (3)各个岗位的平均工资 (4)不同工作经验要求的工资 (5)各个经验…...

Hash 缓存

Hash 缓存 输出文件名(Hash) 静态资源缓存是前端性能优化的一个点,所以在前端开发过程中,一般会最大限度的利用缓存(这里主要是强缓存)。如果设置了强缓存后,每次当我们部署了新的项目文件到线…...

腾讯云CVM服务器标准型S5性能CPU处理器测试

腾讯云服务器CVM标准型S5实例是次新一代的标准型实例,CPU采用主频2.5GHzIntel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器,睿频3.1GHz,云服务器S5基于全新优化虚拟化平台,提供了平衡、稳定的计算、内存和网络资源&#x…...

【左神算法刷题班】第16节:累加和为k的数组、逆序对问题、约瑟夫环问题

题目1 给定一个有正、有负、有0的数组arr, 给定一个整数k, 返回arr的子集是否能累加出k 1)正常怎么做? 2)如果arr中的数值很大,但是arr的长度不大,怎么做? 问题 1)…...

【React | 前端】在React的前端页面中,判断某个变量值是否被定义?根据是否定义显示不同的内容?

问题描述 在React的前端页面中,判断某个变量值是否被定义?根据是否定义显示不同的内容? 问题场景 假如,现在有一个需求是设计一个新功能,新功能中要求新增一个之前没有的变量,假设是计算某一个数组的长度…...

机器学习深度学习——seq2seq实现机器翻译(数据集处理)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——从编码器-解码器架构到seq2seq(机器翻译) 📚订阅专栏:机…...

锁定Mac的内置键盘,防止外接键盘时的误触

场景:把你的外接键盘放在mac上,然后打字时,发现外接键盘误触mac键盘,导致使用体验极差 解决方案:下载Karabiner-Elements这款软件,并给它开启相关权限。 地址:https://github.com/pqrs-org/Ka…...

由于找不到d3dx9_42.dll,无法继续执行代码。重新安装程序可能会解决此问题

d3dx9_42.dll是一个动态链接库文件,它是Microsoft DirectX 9的一部分。这个文件包含了DirectX 9的一些函数和资源,用于支持计算机上运行基于DirectX 9的应用程序和游戏。它通常用于提供图形、音频和输入设备的支持,以及其他与图形和游戏相关的…...

解决Vue+Element UI使用el-dropdown(下拉菜单)国际化时菜单label信息没有刷新的情况

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 问题描述 在默认中文时,点击布局大小下拉菜单正常显示中文,此时切换至英文时,再次点击下拉菜单,还…...

Prometheus技术文档-概念

Prometheus是一个开源的项目连接如下: Prometheus首页、文档和下载 - 服务监控系统 - OSCHINA - 中文开源技术交流社区 基本概念: Prometheus是一个开源的系统监控和告警系统,由Google的BorgMon监控系统发展而来。它主要用于监控和度量各种…...

JQuery判断radio(单选框)是否选中和获取选中值方法总结

使用checked属性判断选中、jquery获取radio单选按钮的值、获取一组radio被选中项的值、设置单选按钮被选中等&#xff0c;详细如下&#xff1a; 一、利用获取选中值判断选中 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.…...

Effective Python 读书笔记

文章目录 前言第1章&#xff1a;用Pythonic方式来思考 1. 用Pythonic方式来思考 2. 遵循PEP8风格3. 了解bytes, str, unicode区别4. 用辅助函数取代复杂表达式5. 了解切割序列的方法6. 单次切片操作内&#xff0c;不要同时指定start, end, stride 7. 用列表推导取代map, filter…...

Monge矩阵

Monge矩阵 对一个m*n的实数矩阵A&#xff0c;如果对所有i&#xff0c;j&#xff0c;k和l&#xff0c;1≤ i<k ≤ m和1≤ j<l ≤ n&#xff0c;有 A[i,j]A[k,l] ≤ A[i,l]A[k,j] 那么&#xff0c;此矩阵A为Monge矩阵。 换句话说&#xff0c;每当我们从矩阵中挑…...

(5)所有角色数据分析页面的构建-5

所有角色数据分析页面&#xff0c;包括一个时间轴柱状图、六个散点图、六个柱状图(每个属性角色的生命值/防御力/攻击力的max与min的对比)。 """绘图""" from pyecharts.charts import Timeline from find_type import FindType import pandas …...

专利进阶(三):专利撰写资料汇总

文章目录 一、前言二、资料汇总三、拓展阅读 一、前言 在专利撰写前&#xff0c;需要首先了解专利撰写所需遵守的基本规则。可以借助的撰写工具是什么。文献检索在哪里&#xff1f;注意事项是什么&#xff1f;本篇博文会就以上问题进行逐一解答。 专利撰写基本原则&#xff1…...

maven编译始终提示无效的目标发行版的解决方法

摘自个人印象笔记2021-05-07&#xff1a;https://app.yinxiang.com/fx/55e1d5f4-aeea-446a-a768-0f1a48195f5b(图显示不完整可查看原笔记内容)1&#xff1a;确保IDE中的编译版本正确 在idea中&#xff0c;主要看项目属性中和setting的java compiler中对应的jdk版本是否正确&…...

系统架构设计高级技能 · 软件可靠性分析与设计(三)【系统架构设计师】

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;二&#xff09;【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…...

界面控件DevExpress WPF Chart组件——拥有超快的数据可视化库!

DevExpress WPF Chart组件拥有超大的可视化数据集&#xff0c;并提供交互式仪表板与高性能WPF图表库。DevExpress Charts提供了全面的2D / 3D图形集合&#xff0c;包括数十个UI定制和数据分析/数据挖掘选项。 PS&#xff1a;DevExpress WPF拥有120个控件和库&#xff0c;将帮助…...

手把手教你用Android Studio虚拟机搞定微信小程序证件照上传(附PS在线调色技巧)

零基础玩转Android Studio虚拟机&#xff1a;微信小程序证件照上传全攻略 在求职、考试报名等场景中&#xff0c;我们常会遇到只能在手机端操作的微信小程序证件照上传需求。但当你手边没有安卓设备&#xff0c;或是小程序在真机上频繁闪退时&#xff0c;该怎么办&#xff1f;…...

如何免费实现城通网盘10倍下载提速:ctfileGet完整使用指南

如何免费实现城通网盘10倍下载提速&#xff1a;ctfileGet完整使用指南 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘的龟速下载而烦恼吗&#xff1f;每次下载大文件都要等待数小时&…...

网页端如何通过jQuery完成芯片制造文档的断点续传?

政府项目大文件传输系统开发方案 一、技术选型与架构设计 作为项目技术负责人&#xff0c;针对政府招投标系统的特殊需求&#xff0c;设计以下技术方案&#xff1a; 1.1 核心架构 #mermaid-svg-8u3j4uQ1dCpxy0J0{font-family:"trebuchet ms",verdana,arial,sans-s…...

用Python实现贪心算法解决多机调度问题:从理论到代码的保姆级教程

用Python实现贪心算法解决多机调度问题&#xff1a;从理论到代码的保姆级教程 在分布式计算和任务调度领域&#xff0c;如何高效分配有限资源以最小化总处理时间是一个经典难题。想象你手头有10个数据处理任务&#xff0c;需要分配到3台服务器上运行——每个任务耗时不同&#…...

Blender 4.0 新手避坑指南:从安装到插件配置,保姆级设置流程(附辣椒酱教程同款插件清单)

Blender 4.0 新手避坑指南&#xff1a;从安装到插件配置的完整工作流 刚打开Blender 4.0时&#xff0c;满屏的英文界面和专业术语确实容易让人望而生畏。作为一款功能强大的开源3D创作套件&#xff0c;Blender的学习曲线相对陡峭&#xff0c;但合理的初始配置能大幅降低入门门槛…...

金仓老旧项目改造-16-[vibe编程vlog]

今天工作app不支持kingbase金仓的修改并不麻烦&#xff0c;现在看只是要改一下Druid的配置类DruidConfig就可以了&#xff0c;增加以下修改即可// KingBase8 基于 PostgreSQL&#xff0c;Druid WallFilter 不识别 kingbase8 类型&#xff0c;需单独配置if (filters ! null &…...

《讨论:利用Ozon图片在1688找相似款,算不算一种高效的“信息差”套利?》

这是一个非常值得深入探讨的电商运营实战话题。将Ozon(俄罗斯主流电商平台)的潜力爆款“搬运”到1688找相似款,本质上是在利用跨境市场信息差、审美差和时间差套利,是一种经典但门槛正在提高的“货品策略”。 下面我们从几个维度深入剖析这个玩法的本质、可行性和未来演变…...

Edge浏览器油猴插件Tampermonkey保姆级配置指南:从安装到脚本管理全流程

Edge浏览器Tampermonkey终极配置指南&#xff1a;从新手到脚本管理大师 在浏览器扩展生态中&#xff0c;Tampermonkey&#xff08;俗称"油猴"&#xff09;无疑是提升效率的神器。它像是一个万能遥控器&#xff0c;通过安装各种脚本&#xff0c;可以解锁网页的隐藏功能…...

终极指南:如何在Windows 10/11上完美修复ViPER4Windows音频增强工具

终极指南&#xff1a;如何在Windows 10/11上完美修复ViPER4Windows音频增强工具 【免费下载链接】ViPER4Windows-Patcher Patches for fix ViPER4Windows issues on Windows-10/11. 项目地址: https://gitcode.com/gh_mirrors/vi/ViPER4Windows-Patcher 厌倦了Windows 1…...

从“翻车”到“神图”:我的Stable Diffusion提示词避坑与调优笔记(附Lora使用心得)

从“翻车”到“神图”&#xff1a;我的Stable Diffusion提示词避坑与调优笔记 深夜三点&#xff0c;屏幕上的AI少女长着七根手指&#xff0c;背景里漂浮着半截手臂——这已经是我今晚第十七张“恐怖片剧照”了。作为从MidJourney转战Stable Diffusion的老玩家&#xff0c;我经历…...