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

news/2024/7/5 1:35:25

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

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

在这里插入图片描述

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

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

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

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

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


http://lihuaxi.xjx100.cn/news/1260126.html

相关文章

k8s部署成功后却显示结点一直处于NotReady状态解决方案

直接说结论:原因是服务器的/opt/cni/bin/目录中没有flannel插件,安装flannel 到/opt/cni/bin/目录下即可。具体步骤往下看。 [rootK8SMaster ~]# journalctl -f -u kubelet.service 先看下报错,发现我一直显示NotReady的原因是由于 [faile…

Maven(三):Maven的组成详解

文章目录 坐标和依赖坐标详解依赖配置依赖范围传递性依赖依赖调节可选依赖优化排除依赖归类依赖优化依赖 仓库本地仓库远程仓库仓库镜像常用搜索地址 生命周期与插件三套生命周期clean生命周期default生命周期site生命周期 插件 聚合与继承更加灵活的构建常见问题使用jdk来运行…

【TA100】图形 3.5 Early-z和Z-prepass

一、深度测试:Depth Test 1.回顾深度测试的内容 深度测试位于渲染管线哪个位置 ○ 深度测试位于逐片元操作中、模板测试后、透明度混合前 为什么做深度测试 ● 深度测试可以解决:物体的可见遮挡性问题 ○ 我们可以用一个例子说明 ■ 图的解释&…

TCP和HTTP的区别

概念 TCP(传输控制协议)和HTTP(超文本传输协议)是在计算机网络中起着不同作用的两种协议。 TCP是一种传输层协议,它负责在网络上可靠地传输数据。它提供了数据分割、流量控制、拥塞控制和错误恢复等功能,以确保数据的可靠传输。TCP使用握手和确认机制来建立和维护连接,…

【C++】速成笔记

C环境搭建&#xff1a;Visual Studio下载安装与配置教程 clion下很多命令符需要加“std::”&#xff0c;如cout、cin、endl等。原因是&#xff1a;<iostream>头文件没有namespace std库。 解决方法: 法1、int main内加using namespace std; 法2、cin&#xff0c;cout&am…

shardingsphere第四课shardingsphere-proxy的使用

一、为什么要有服务端分库分表&#xff1f; 配合 ORM 框架使用更友好 当使用 ShardingSphere-JDBC 时,需要在代码中直接编写分库分表的逻辑,如果使用 ORM 框架,会产生冲突。ShardingSphere-Proxy 作为服务端中间件,可以无缝对接 ORM 框架。 对 DBA 更加友好 ShardingSphere-Pr…

Web3通过ganache运行起一个本地虚拟区块链

通过文章 Web3开发准备工作 手把手带你创建自己的 MetaMask 账号大家简单的对网络 有了个比较模糊的概念 不同的网络连接这不同的区块链 那么 我们就要搞清楚 我们切换不同的网络 我们的数字资产是不一样的 在这里 我们需要先安装一个插件工具 ganache 我们先在本地创建一个文…

NodeJS 生成APIDOC⑩①

文章目录 ✨文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持&#x1f618;前言API 文档生成工具 APIDOC特点 APIDOC使用步骤0、 运行命令1、 安装插件3、 配置演示4、 ApidocJson配置文件5、效果图 总结 ✨文章有误请指正&#x…