JVM/垃圾回收

news/2024/11/12 19:24:45/文章来源:https://www.cnblogs.com/cha9/p/18393692

Java的垃圾回收模型

一、介绍

  • 分为栈、堆、本地方法栈、程序计数器、方法区

在这里插入图片描述

  • 栈区:主要用来存储局部变量和对象地址

    • 栈区不仅存储局部变量和对象地址,还存储方法调用的上下文信息。
  • 堆区:分为很多个区域,可以存储对象的具体数据等

    • Java 虚拟机中内存最大的一块,是被所有线程共享的,几乎所有的对象实例都在这里分配内存;
  • 本地方法区:一些C++的native方法

    • 用于管理本地方法的调用,里面并没有我们写的代码逻辑,其由native修饰,由 C ++实现。
  • 程序计数器:指向程序当前运行的位置

    • 它是一块很小的内存空间,主要用来记录各个线程执行的字节码的地址,例如,分支、循环、线程恢复等都依赖于计数器。
  • 方法区:存储一些静态方法和变量、类的方法

    • 用于存放已被虚拟机加载的类信息,常量,静态变量等数据。
    • 方法区除了存储类的信息,还包括运行时常量池、编译后的代码等内容。
  • 其中每一个线程在运行的时候,都会开辟一个栈区、本地方法区、程序计数器来私有享用。堆和方法区是共享的。

在这里插入图片描述

  • 大多数情况下基本数据类型是拷贝值、引用数据类型是拷贝地址

二、垃圾回收机制(GC)

  • 三种方法
    1. 标记——清理 缺:内存碎片
    2. 标记——整理 缺:代价大
    3. 赋值 缺:2倍内存

在这里插入图片描述

  • E和S0和S1的比例一般是8:1:1,一般是在E中创建对象,当E存满的时候,把需要清除的打上标记,剩下的拷贝到S0。后面E再满的时候S0和E需要的拷贝到S1中。循环往复,达到一定次数,还没有删除的会认为很长时间不会被删除并存入Old GC中。大的对象也会被存到Old GC中。
  • Young GC典型有ParNew,OldGC一般有CMS,在java9后一般是用G1

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

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

相关文章

NetSarang Xshell 8.0 beta

一、概述NetSarang Xshell 8.0 beta发布啦! 二、新功能 2.1 身份验证配置文件 2.2 触发器2.3 快速命令 2.4 RDP支持 2.5 快速启动 2.6 自定义会话图标 ◀.zstitle { width: 280px; text-align: center; font-size: 26px } .zsimgweixin { width: 280px } .zsimgali { width…

【Spring Boot配置数据源问题】Spring Boot配置数据源时遇到错误:jdbcUrl is required with driverClassName​

报错如图,需要修改数据源连接配置:修改前配置如图:将spring.datasource.url修改为spring.datasource.jdbc-url即可:寻找了网上其他解释: spring.datasource.url 数据库的 JDBC URL。 spring.datasource.jdbc-url 用来创建连接的 JDBC URL。

mssql windows 账户登录不了 要登录sa创建出来 才可以本地登录

SQL SERVER 登陆错误:18456SQL Windows身份登录失败,错误码:18456 先用sa进入 EXEC xp_instance_regread NHKEY_LOCAL_MACHINE, NSOFTWARE\Microsoft\Microsoft SQL Server\MSSQLServer, NLoginMode -- 启用TCP/IP协议EXEC xp_instance_regwrite NHKEY_LOCAL_MACHINE, NSOFTWA…

2024软件工程(第一次作业)

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13243这个作业的目标 适应后续使用博客园完成任务,初步体会AIGC的方便学号 1022014251.个人logo文生图任务设计理念:天上的白云体现…

三次剩余特征

三次剩余特征及其性质今天推点史: Laur - Symphony Op.1 -CHAOS ZAQUVA - Speculation DJ Noriken & DJ Genki - Dream Away feat. Yukacco (Hylen Remix) 史歌后边还有史笑话: 祭丁过,两广文①争一猪大脏,各执其脏之一头。一广文稍强,尽掣得其脏,争者只两手撸得脏中…

linux进程间通信——信号量(通俗易懂,看这一篇就够了)

信号量 概念 特点信号量实际是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储 进程间通信 数据。很多进程会访问同一资源,或者向共享内存写入一些东西,为防止争夺资源混乱。可以给一些进程上锁,让其排队等待工作原理P(sv):如果sv的值大于零,就给它减1;如…

什么是非空集合A上的等价关系?

定义:解释 既然是等价关系,那么 \(A\) 中的元素 \(a\) 一定和自己等价 如果 \(a\) 和 \(b\) 等价,那么 \(b\) 和 \(a\) 也一定等价 如果 \(a,b\) 等价, \(b,c\) 等价,那么 \(a,c\) 一定等价

NetSarang Xshell(SSH客户端软件) v7.0.0169 中文绿色版

概述 NetSarang Xshell破解版是一款免费SSH客户端软件的Linux远程监控工具.Xshell中文版,轻松管理远程主机服务器,会话管理器,支持多选项卡管理主机.Xftp 7最新版以及Xshell 7最新版支持远程协议Telnet,Rlogin,SSH/SSH PKCS#11,SFTP,Serial,具有Unicode编码支持,动态端口转发,…

中望CAD 专业 v2024 解锁版下载与安装教程 (CAD三维制图)

安装步骤 ZWCAD2024-SP1.3-x64-Chs-Setup+Crack:ZWCAD2024-SP1.3-x64-Chs-Setup+Crack.zip 1、下载解压后点击如下进行安装2、选择安装目录,最好不要安装在系统盘(C盘)3、安装中...耐心等待2-3分钟4、安装完先不要运行它,点击完成即可5、回到我们解压的文件夹里面,访问cr…

SCRAPY入门学习(待完善)

Scrapy介绍 Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。 Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。Scrapy的运作流程 Sc…

从需求到交付:Leangoo领歌助力敏捷项目成功

​ 在敏捷项目管理中,需求管理是决定项目成功的关键环节。准确捕捉和高效管理需求,不仅能避免项目偏航,还能确保最终交付的产品与客户预期高度契合。Leangoo领歌敏捷工具,正是为此而生,助力团队轻松实现需求管理的每一步。​ 在敏捷项目管理中,需求管理是决定项目成功的关…

自我介绍 + 软工5问

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-12这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-12/homework/这个作业的目标 使用 GitHub 建立一个仓库和在博客园上使用 Markdown 排版写一份随笔自我介绍 我是广东工业大学计算机…