【jvm】垃圾回收是否会涉及到虚拟机栈?

目录

          • 1. 说明
          • 2. 虚拟机栈的特点
          • 3. 虚拟机栈的作用
          • 4. 垃圾回收与虚拟机栈的关系
          • 5. 垃圾回收的主要算法
            • 5.1 标记-清除算法
            • 5.2 复制算法
            • 5.3 标记-整理算法

1. 说明
  • 1.垃圾回收不会涉及到虚拟机栈。
2. 虚拟机栈的特点
  • 1.虚拟机栈(Java Virtual Machine Stack),早期也叫Java栈,是线程私有的。
  • 2.每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应着一次次的Java方法调用。
  • 3.栈是一种快速有效的分配存储方式,访问速度仅次于程序计数器。
3. 虚拟机栈的作用
  • 1.虚拟机栈主管Java程序的运行,它保存方法的局部变量、部分结果,并参与方法的调用和返回。
  • 2.具体来说,栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。
4. 垃圾回收与虚拟机栈的关系
  • 1.由于虚拟机栈是线程私有的,且其内存分配和回收具有确定性(随线程而生、随线程而灭),因此垃圾回收不会涉及到虚拟机栈。
  • 2.当栈帧对应的方法执行完后,栈会将该方法对应的栈帧弹出栈,释放内存,这是由JVM自动完成的,不需要垃圾回收器的介入。
5. 垃圾回收的主要算法
5.1 标记-清除算法
  • 1.标记阶段遍历所有的GC Roots对象,对从GC Roots对象可达的对象都打上一个标识。
  • 2.清除阶段则对堆内存进行遍历,如果发现某个对象没有被标记为可达对象,则将其回收。
  • 3.但标记和清除两个阶段的效率都不高,且标记清除之后会产生大量不连续的内存碎片。
5.2 复制算法
  • 1.将可用内存按容量划分为大小相等的两块,每次使用其中的一块。
  • 2.当这一块的内存用完了,就将还存活的对象复制到另一块内存上,然后把这一块内存所有的对象一次性清理掉。
  • 3.复制算法优化了标记清除算法的效率低、内存碎片多问题,但如果对象的存活率很高,那么复制存活对象的时间代价也是不可忽视的。
5.3 标记-整理算法
  • 1.标记过程与标记/清除算法一样,但后续步骤不是直接对可回收对象进行回收,而是让所有存活的对象都向一端移动,然后直接清理掉端边线以外的内存。
  • 2.这样就解决了内存碎片的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中间件有哪些分类?

中间件的分类 中间件是位于操作系统和应用程序之间的软件,它提供了一系列服务来简化分布式系统中的应用程序开发和集成。中间件可以根据其功能和用途被分为不同的类别。以下是中间件的一些主要分类: 1. 通信处理(消息)中间件&am…

利用编程思维做题之反转链表

牛客网题目 1. 理解问题 给到我们的是一个单链表的头节点 pHead,要求反转后,返回新链表的头节点。 首先在心里设想能够快速理解的例子,如给你123序列,要你反转此序列如何回答?将最后一个数字3作为头,然后修…

使用Qt Creator创建项目

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 使用Qt Creator创建项目 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 温馨提示: 1. 新…

基于SpringBoot+Vue的非物质文化遗产保护与传播系统设计实现(地图组件)

🎈系统亮点:地图组件; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构:B/S架构 运行环境:win10/win11、jdk17 前端: 技术:框架Vue.js&#x…

C/C++进阶(一)--内存管理

更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 本文所在专栏: 学习专栏C语言_Stark、的博客-CSDN博客 其它专栏: 数据结构与算法_Stark、的博客-CSDN博客 ​​​​​​项目实战C系列_Stark、的博客-CSDN博客 座右铭&a…

RDD优化:缓存和checkpoint机制、数据共享(广播变量、累加器)、RDD的依赖关系、shuffle过程、并行度说明

文章目录 1. 缓存和checkpoint机制1.1 缓存使用1.2 checkpoint1.3 缓存和checkpoint的区别 2. 数据共享2.1 广播变量2.2 累加器 3. RDD依赖关系4.shuffle过程4.1 shuffle介绍4.2 spark计算要尽量避免shuffle 5. 并行度 1. 缓存和checkpoint机制 缓存和checkpoint也叫作rdd的持…

Springboot 整合 Java DL4J 实现企业门禁人脸识别系统

🧑 博主简介:历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,…

vue后台管理系统从0到1(3)element plus 的三种导入方式

文章目录 vue后台管理系统从0到1(3)element plus 的三种导入方式element plus 引入方式完整引入按需导入手动导入 vue后台管理系统从0到1(3)element plus 的三种导入方式 element plus 引入方式 官方网址:https://el…

windows系统更新升级node指定版本【避坑篇!!!亲测有效】(附带各版本node下载链接)一定看到最后!不用删旧版!

Node.js 是一个开源、跨平台的 JavaScript 运行时环境,广泛应用于服务器端和网络应用的开发。随着 Node.js 版本的不断更新,我们可能需要升级到特定版本以满足项目需求或修复安全漏洞。又或者是学习开发另外一个新项目,新项目对Node版本要求更…

优达学城 Generative AI 课程2:Large Language Models (LLMs) Text Generation

建议先了解一下附录知识。 文章目录 1 官方课程内容自述Lesson 1: 大型语言模型(LLMs)简介Lesson 2: 自然语言处理(NLP)基础Lesson 3: Transformer 和注意力机制Lesson 4: 检索增强生成(RAG)Lesson 5: 为大…

查找企业联系电话的几种方法

在商业合作和销售拓展的过程中,找到企业的联系电话是至关重要的一步。无论是精准营销还是客户开发,拥有有效的联系方式可以大大提高成功率。那么,如何快速有效地查找企业联系电话呢?下面介绍几种常见的方法,以及如何借…

如何解决项目跟进中关键节点难以把控的问题?

在项目跟进的过程中,关键节点的把控常常是一个棘手的问题。如果不能有效地管理这些节点,项目可能会偏离轨道,导致延误、成本超支甚至失败。下面我们来分析一下都有哪些关键节点难以把控以及相应的应对策略。 1、需求变更节点 在项目进行中&a…

快速入门Tomcat服务(业务发布基础技能)

文章目录 1 Tomcat简介 2 安装tomcat 2.1 安装jdk 2.2 安装Tomcat 3 Tomcat目录结构 4 Tomcat重要配置文件 1 Tomcat简介 Tomcat是Sun公司官方推荐的Servlet和JSP容器,在中小型系统和并发访问用户不是很多的场合下,其作为轻量级应用服务…

无刷直流电机工作原理:【图文讲解】

电动机 (俗称马达) 是机械能与电能之间转换装置的通称。可以分为电动机和发电机.一般称电机时就是指电动机。这个在日常应用中,比较多见,比如机器人,手机,电动车等。 直流电机:分为有刷直流电机(BDC&#…

HTTP的工作原理

HTTP(Hypertext Transfer Protocol)是一种用于在计算机网络上传输超文本数据的应用层协议。它是构成万维网的基础之一,被广泛用于万维网上的数据通信。(超文本(Hypertext)是用超链接的方法,将各种不同空间的文字信息组…

【MySQL】CRUD增删改查操作

文章目录 CRUD简介一、Creat 新增1.单行数据全列插入2.单行数据全指定列插入3.多行数据指定列插入 二、Retrieve 检索1.全列查询 --练习阶段最简单的查询:(在生产环境最好不要用!!)2.指定列查询3.结果去重查询4.where条…

柒拾伍- AI内容农场生产文章自动发布至公众号 (一)

一、内容农场 X AI 看过很多的新闻说 AI 产生 内容 污染网络,我也想试一下到底能污染成怎样。 然后为了编写爆款的内容,我选用这个 内容农场 的种子是来源于 微博热搜,让生长出来的垃圾文章更加火爆 涉及内容不能放 二、编写代码 关于代…

常用类(一)----包装类的使用和分析

文章目录 1.包装类2.课堂测试题3.包装类方法4.Integer创建机制5.Integer面试题 1.包装类 概念:基本数据类型对应的类就是包装类,就是为了把基本数据类型转换为包装类,使用这个类里面的方法操作数据----装箱的过程; //装箱&#…

springboot查询全部部门流程

前端发送请求后,会请求DeptController的方法list()。 package com.intelligent_learning_aid_system.controller;import com.intelligent_learning_aid_system.pojo.Dept; import com.intelligent_learning_aid_system.pojo.Result; import com.intelligent_learni…

ArcGis JS天地图 暗色地图

方法一&#xff1a;使用css filter 在body下增加svg&#xff0c;并增加需要用到的滤镜&#xff0c;这边用到x-rays <svg id"svgfilters" aria-hidden"true" style"position: absolute; width: 0; height: 0; overflow: hidden"version"…