JVM存储模型、值传递和引用传递

news2024/11/26 18:46:08

JVM存储模型、值传递和引用传递

一、首先根据下图理解一下JVM是什么? — Java程序和操作系统之间的桥梁
在这里插入图片描述
二、Java数据存储模型

在这里插入图片描述

因为栈区、本地方法栈、程序计数器是线程私有的,每一个线程在运行时会单独去创建这样一个内存,所以说有多少个线程就可能有多少个栈区。
Java的基础数据类型都是值类型,指针也是值类型,因而是直接存到内存而不是存地址再去寻址。
在堆上创建的对象是不能够随着函数的运行完毕自动清理的,因为不知道是否有其他线程也引用了这个对象 — GC机制(垃圾回收机制)
Main函数就是存在于方法区的,还有一些静态的方法和类加载器

Java中有两种传递方式,值传递和引用传递,基本类型和以String str = “aaa” 这种方式创建的字符串都是值传递;对象、数组等都是引用传递。
值传递:形参改变 实参不变
引用传递:形参改变 实参改变
下面通过几个例子来详细说明一下引用传递和值传递的具体区别:
1. 值传递:
在这里插入图片描述

在这里插入图片描述
调用方法结束之后栈c会被销毁,此时打印的a依旧是fa,值没有被调用方法所改变,所以成为值传递。
2. 数组和对象
在这里插入图片描述

在这里插入图片描述
调用方法结束之后,对象c会从栈中被销毁,但是此时打印出a数组的值为5,2,3
数组的值已经改变,所以称之为引用传递(即传递对象的地址值),对象也是一个道理。

初学者根据b站视频和题目总结的,欢迎指正

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

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

相关文章

前端18K面试题总览,往这方面准备就对了

Vue面试题 生命周期函数面试题 1.什么是 vue 生命周期2.vue生命周期的作用是什么3.第一次页面加载会触发哪几个钩子4.简述每个周期具体适合哪些场景5.created和mounted的区别6.vue获取数据在哪个周期函数7.请详细说下你对vue生命周期的理解? vue路由面试题 1.mv…

Unity核心2——Sprite

顾名思义,Sprite Editor 就是精灵图片编辑器,它主要用于编辑 2D 游戏开发中使用的 Sprite 精灵图片 ​ 它可以用于编辑,图集中提取元素,设置精灵边框,设置九宫格,设置轴心(中心)点等…

以色列QM和荷兰QuantWare合作提供预集成控制系统和QPU解决方案

​ (图片来源:网络) 6月13日,以色列量子计算机操作系统初创公司Quantum Machines(QM)和荷兰超导量子处理器(QPU)的领先供应商QuantWare宣布合作,旨在大幅加速研究进展&a…

火爆全网,python自动化测试logging日志模块使用方法(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、日志级别 imp…

3D WEB轻量化引擎工具HOOPS Communicator与Three.js和自主DIY的对比分析

​基于Web的2D和3D可视化已经变得越来越流行,而且市场根据这些变化,为其提供了更丰富的实用性。如果处理得好,开发人员可以使用户以简单、用户友好的方式与其他客户、开发人员或其他任何人共享来自市场的设计。 当开发人员考虑第三方提供这项…

保险业服务模式“智能化”升级

近年来,随着数字时代的多元化发展,人工智能技术凭借其高度便利性,已被广泛拓展应用到各行各业。在AI的加持下,保险行业的发展正处于从“数字化”阶段迈向“智能化”阶段的过渡时期,销售渠道多样、业务量激增以及客户对…

Django之路由层

一、路由的作用 路由即请求地址与视图函数的映射关系,如果把网站比喻为一本书,那路由就好比是这本书的目录,在Django中路由默认配置在urls.py中,如下图: 二、简单的路由配置 # urls.py from django.urls import re_…

java 献血管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 献血管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…

CSS查缺补漏之《如何优雅解决margin垂直方向塌陷与合并问题?》

一:父子元素之间margin垂直方向塌陷问题 在处理margin垂直方向问题时,经常会遇到在给子元素设置margin时,导致效果出现在了父元素上;如下代码所示: 代码原义是想实现三方面: ① 将box1的margin-top调为5…

Activity 的生命周期和启动方式

Activity 的生命周期 Activity A 启动B,生命周期: A: onPause - B: onCreate-onStart-onResume- A:onStop Activity B返回 A,生命周期: B:onPause - A:onRestart - onStart - onResume - A:onStop onPause onStop 区…

分布式数据保护策略——多副本和纠删码怎么选?

在之前的《一文读懂分布式存储》文章中,我们介绍了什么是分布式存储。 但谈到存储,安全就是一个绕不开的话题。 没有数据安全的存储毫无意义。 所以数据保护技术对于分布式存储来说非常重要。 ▉ 为什么需要数据保护? 数据显示&#xff0…

考研英语|2022年真题 正确率:16/20|14:00~15:30

22 错 25 错 34 错 40 错 Text 1 21 实词对应 preservemaintain 22 推理判断题 错因:仅仅定位在vulnerable 没有继续往后阅读 immune to decay 理解错误,真确释义为“不会腐烂”,错误理解为“容易腐烂坏掉” 文中定位:第…

618年中大促专属!不容错过的B2B电商机遇

即将又迎来一年一度的618年中大促,各大品牌商家是否都做好准备了呢? 对于这场购物狂欢的盛宴,很多人常常会把焦点放在面向消费者的B2C市场上,B2B市场则因线上化渗透率较低,显得相对冷清,不够引人关注。 事实…

全网最全,pytest自动化测试框架——数据驱动实战详解(超详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 第一种&#xff1…

Web前端开发技术储久良第三版课后选择答案(1-10章)

P16-第1章 练习与实验答案 练习1 1.选择题 【1】Html是一种()语言。 【A】编译型 【B】超文本标记 【C】高级程序设计 【D】面向对象编程【2】世界上第一个网页是()。 【A】http://www.w3c.org 【B】http:/info.cern.ch 【C】http://www.microsoft.com…

ffmpeg学习记录

1、对图片进行裁剪 ffmpeg -i input.jpg -vf cropiw/3:ih:20:0 caijian.jpg PS: crop100:100:12:34 相同效果: cropw100:h100:x12:y34 2、视频增加文字水印 使用drawtext滤镜进行增加水印 参数 类型 说明 text 字符串 文字 textfile 字符串 文字文件 …

invalid python sdk, pycharm2022不能创建虚拟环境的解决方法

感谢万能的google! 一开始google搜索“pycharm2022 invalid python sdk cannot set up a python sdk at python 3.11”,进入链接:Cannot setup a Python SDK in PyCharm project using virtualenv after OS reinstallation - Stack Overflow…

Flink将数据写入CSV文件后文件中没有数据

Flink中有一个过时的sink方法:writeAsCsv,这个方法是将数据写入CSV文件中,有时候我们会发现程序启动后,打开文件查看没有任何数据,日志信息中也没有任何报错,这里我们结合源码分析一下这个原因. 这里先看一下数据处理的代码 代码中我是使用的自定义数据源生产数据的方式,为了方…

AIVA.AI:AI音乐作曲创作平台

【产品介绍】 AIVA.AI是一个人工智能音乐创作平台,可以根据用户的需求和喜好,自动生成不同风格和情感的音乐。目标是成为创意人士的创意助手,无论是独立游戏开发者、音乐新手还是专业作曲家,都可以利用AIVA.AI的技术来为自己的项目…

分布式各系统时间统一程序

目录 1、背景2、Cristians algorithm 算法(克里斯蒂安算法)3、实现思路3.1、步骤:3.2、公式 4、具体代码4.1、构建时间戳4.2、定义数据包4.3、客户端实现4.3、服务端实现 说明 1、背景 使用场景是在一个大型分布式系统下,对时间有…