jvm 堆 栈中存什么?

news2025/1/17 3:16:23

9b89a07d82774702990fedc4343fff67.jpg数据类型

 

  Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的

值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象

本身存放在这个引用值所表示的地址的位置。

 

 

  基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddress

  引用类型包括:类类型,接口类型和数组。

 

 

 

 

 

栈是运行时的单位,而堆是存储的单位。

 

 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;堆解决的是数据存储的问题,即数据怎么放、放在哪儿。

 

 

 

 

 

 

 

堆中存什么?栈中存什么?

 

 

堆中存的是对象。栈中存的是基本数据类型和堆中对象的引用。一个对象的大小是不可估计的,或者说是可

以动态变化的,但是在栈中,一个对象只对应了一个4btye的引用(堆栈分离的好处:))。

为什么不把基本类型放堆中呢?因为其占用的空间一般是1~8个字节——需要空间比较少,而且因为是基本

类型,所以不会出现动态增长的情况——长度固定,因此栈中存储就够了,如果把他存在堆中是没有什么意义

的(还会浪费空间,后面说明)。可以这么说,基本类型和对象的引用都是存放在栈中,而且都是几个字节的

一个数,因此在程序运行时,他们的处理方式是统一的。但是基本类型、对象引用和对象本身就有所区别了,

因为一个是栈中的数据一个是堆中的数据。最常见的一个问题就是,Java中参数传递时的问题。

 

 

 

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

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

相关文章

矩阵理论复习(六)

Q代表有理数,即整数和小数部分有限的分数和小数部分无限循环的分数。无限不循环的小数就是无理数。所有无理数和有理数加起来就是实数集R。与实数对应的就是虚数。 数域的定义 线性空间的定义 线性空间的基和维数 子空间的定义 子空间的判别方法 最常见的…

【唐诗学习】二、初唐诗词领路人

二、初唐诗词领路人 唐朝之前的主流诗人都是在宫廷混口饭吃,他们整天围着皇帝转,写的大多是宫廷奢靡的生活,还会拍皇帝马屁。主流诗人受前朝影响很大,就这么发展到了初唐。照这个剧情发展下去,诗歌迟早要完蛋。 可有些…

狂神聊Git~

版本控制: 版本控制的概念: 它是一种在开发的过程中用于管理我们对文件,目录或工程等内容的修改历史,方便我们查看历史记录,备份以便恢复以前的版本的软件工程技术 版本控制的作用: 用于管理多人协同开发项目的技术 实现跨区…

Tomcat进程占用CPU过高怎么办?

在性能优化这个主题里,前面我们聊过了Tomcat的内存问题和网络相关的问题,接下来我们看一下CPU的问题,CPU资源经常会成为系统性能的一个瓶颈,这其中的原因是多方面的,可能是内存泄漏导致频繁GC,进而引起CPU使…

Linux命令--查看发行版本/内核版本的方法

原文网址:Linux命令--查看发行版本/内核版本的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Linux查看发行版本和内核版本的方法。 查看发行版本 cat /etc/lsb_release 说明 这个命令适用于大部分linux发行版本(除了redhat和centos等) …

C 语言零基础入门教程(九)

C 函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,…

用Zybo调试CY7C68013A核心板的Slave FIFO模式

用Zybo调试CY7C68013A核心板简介CY7C68013A核心板CY7C68013程序设计硬件连接主要代码Zybo程序设计心得简介 最近在调试CY7C68013A核心板的Slave FIFO模式时,因为电路板的丝印bug,绕了一大圈。最终不但调试成功,也发现了用Zybo调试其它电路板…

C语言对数组元素进行排序

在实际开发中,有很多场景需要我们将数组元素按照从大到小(或者从小到大)的顺序排列,这样在查阅数据时会更加直观,例如:一个保存了班级学号的数组,排序后更容易分区好学生和坏学生;一…

教练,我想学设计之禅

欢迎来到PaQiuQiu的空间 本文为【教练,我想学设计之禅】,方便大家更好的阅读! <—写在前面—> 本专栏分四部分展开,设计模式与设计原则、算法与数据结构、架构设计以及实战为王。 设计模式介绍了经典的23种设计模式,设计原则重点阐述SOLID原则; 算法与数据结构详…

Linux常用命令——slabtop命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) slabtop 实时显示内核slab内存缓存信息 补充说明 slabtop命令以实时的方式显示内核“slab”缓冲区的细节信息。 语法 slabtop(选项)选项 --delayn, -d n&#xff1a;每n秒更新一次显示的信息&#xff0c;默…

使用树莓派3B、RTL-SDR、OpenWebRX搭建无线电监测站

方案介绍&#xff1a; OpenWebRX是一个国外开源项目&#xff0c;基于Python语言编写&#xff0c;配合SDR设备使用&#xff0c;能将SDR接收软件Web化&#xff0c;通过网络实现多用户远程访问&#xff0c;无需安装任何客户端软件&#xff0c;功能非常强大&#xff0c;支持&#x…

Python位置参数

位置参数&#xff0c;有时也称必备参数&#xff0c;指的是必须按照正确的顺序将实际参数传到函数中&#xff0c;换句话说&#xff0c;调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致。实参和形参数量必须一致在调用函数&#xff0c;指定的实际参数的数量&#…

DaVinci:Camera Raw(CinemaDNG)

本文主要介绍 CinemaDNG Raw 格式素材相关的 Camera Raw 参数。解码质量Decode Quality解码质量决定了图像解拜耳之后所呈现的素质。默认为“使用项目设置” Use project setting&#xff0c;表示使用项目设置对话框中的“Camera RAW”解码质量设置。还可选择&#xff1a;全分辨…

离散系统的数字PID控制仿真-1

控制对象为&#xff1a;采样时间为1ms&#xff0c;采用z变换进行离散化&#xff0c;经过z变换后的离散化对象为&#xff1a;y(k)-den(2)y(k -1)- den(3)y(k -2)- den(4)y(k-3)num(2)u(k -1) num(3)u(k -2) num(4)u(k-3)设计离散PID控制器。其中&#xff0c;S为信号选择变量&…

【数据库概论】第四章 数据库安全性

第四章 数据库安全性 目录第四章 数据库安全性4.1 概述4.2 数据库安全性控制1.用户身份识别2.存取控制3.自主存取控制方法4.授权&#xff1a;授予与收回GRANT&#xff1a;授权语句REVOKE&#xff1a;收回权限3.创建数据库模式的权限4.数据库角色5.角色权限的回收6.强制存取控制…

贪心算法(greedy algorithm)

贪心算法什么是贪心算法[122. 买卖股票的最佳时机 II](https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/)代码[455. 分发饼干](https://leetcode.cn/problems/assign-cookies/)思路代码[435. 无重叠区间](https://leetcode.cn/problems/non-overlapping-inte…

SaaS是什么,目前主流的国内SAAS平台提供商有哪些?

SaaS是什么&#xff0c;目前主流的国内SAAS平台提供商有哪些&#xff1f;SaaS这个概念近两年可谓说是十分火热&#xff0c;尤其是后疫情时代。 但还是有很多人对SaaS这个名词云里雾里&#xff0c;被碎片化的信息裹挟&#xff0c;并没有真正意义上理解SaaS的概念。 这篇就综合…

87.【SpringBoot-01】

SpringBoot(一)、前面回顾1.什么是Spring2.Spring 是如何简化Java开发的(二)、什么是SpringBoot1.基本含义:2.Spring Boot的主要优点(三)、微服务1.什么是微服务2.单体应用架构3.微服务架构 (活字印刷)4.如何构建微服务(四)、第一个SpringBoot程序1.点击新建文件2.勾选web框架3…

通用的产品功能设计方法

通用的产品功能设计方法1.如何设计注册/登录功能1.1 注册功能设计1.2 登录功能的设计2.如何设计APP启动页功能和引导页功能2.1 启动页功能设计2.2 引导页功能设计3.如何设计非法信息输入校验功能3.1 非法文本信息的输入校验规则3.2 非法图片信息的输入校验规则3.3 非法附件信息…

《C++程序设计原理与实践》笔记 第11章 定制输入/输出

在本章中&#xff0c;我们重点关注如何使第10章中介绍的通用iostream框架适配特定的需求和偏好。 11.1 规则性和不规则性 C标准库的输入/输出部分——iostream库为文本的输入和输出提供了一个统一的、可扩展的框架。 到目前为止&#xff0c;我们将所有输入源视为等价的&…