关于 JVM 个人 NOTE

devtools/2024/10/15 22:29:51/

目录

1、JVM 的体系结构

2、双亲委派机制

3、堆内存调优

4、关于GC垃圾回收机制

4.1 GC中的复制算法

4.2 GC中的标记清除算法


1、JVM 的体系结构

"堆"中存在垃圾而"栈"中不存在垃圾的原因:

堆(Heap)

  1. 用途:堆主要用于存储对象实例和数组。在Java中,几乎所有通过new关键字创建的对象都会存储在堆内存中。
  2. 内存分配与释放堆内存的分配和释放由JVM的垃圾回收器(Garbage Collector, GC)自动管理。当对象不再被引用时,它们被认为是垃圾,但并不会立即被释放。相反,垃圾回收器会在合适的时机进行垃圾回收,以释放这些不再使用的内存空间。
  3. 垃圾存在的原因:由于垃圾回收器并不是实时运行的,且对象的生命周期可能跨越多个垃圾回收周期,因此在堆内存中可能会存在已经不被使用但仍未被回收的垃圾对象

栈(Stack)

  1. 用途:栈主要用于存储局部变量、方法调用信息和对象的引用变量(但对象本身存储在堆中)。每个线程都有自己独立的栈空间,用于存储该线程执行过程中的局部变量和方法调用信息。
  2. 内存分配与释放栈内存的分配和释放是自动的,且与方法的调用和返回紧密相关。每当一个方法被调用时,JVM会在栈上为该方法创建一个新的栈帧&

http://www.ppmy.cn/devtools/121329.html

相关文章

封装提示词翻译组件

一、本章诉求 由于前期设计的提示词均是英文输入,后期用户要求增加中文提示词输入,这个需求更改有两个方法,一个是修改comfyui工作流,另一个是修改前端,在前端将用户输入的中文翻译成英文,再推送到工作流中…

【Element-UI】实现el-drawer抽屉的左右拖拽宽度

对Element-UI的el-drawer抽屉控件实现拖拽功能。 1、新增drawer-drag.js import Vue from vueVue.directive(drawerDrag, {bind(el, binding, vnode, oldVnode) {const minWidth 400const dragDom el.querySelector(.el-drawer)dragDom.style.overflow autoconst resizeElL…

LP3718BSL封装SOP8/12W隔离开关电源芯片

概述: LP3718BSL 是一款高度集成的隔离型适配器和充电器的自供电PSR控制芯片,外围设计极其简单。 LP3718BSL通过外置电阻,可调原边峰值电流,再 通过变压器原副边匝比来设置输出恒流点;通过设 定 FB 上偏电阻和下偏电阻来设置输出恒…

【Linux庖丁解牛】—Linux基本指令(中)!

🌈个人主页:秋风起,再归来~🔥系列专栏: Linux庖丁解牛 🔖克心守己,律己则安 目录 1、rmdir与rm指令 2、man指令 3、cp指令 4、mv指令 5、cat与tac指令 6、重定向 7、more指令 8、…

Mybatis 学习之 分页实现

文章目录 1. Mybatis1.1. 代码实现 2. Mybatis Plus2.1. 代码实现2.2. 特别注意 3. PageHelper3.1. 代码实现3.2. 特别注意 参考资料 1. Mybatis 1.1. 代码实现 package com.example.demo;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot…

滚雪球学Oracle[2.3讲]:Oracle Listener配置与管理

全文目录: 前言一、Oracle Listener的基础概念1.1 什么是Oracle Listener?Listener的作用: 1.2 Oracle Listener的配置文件示例listener.ora配置文件: 1.3 启动与管理Listener 二、多Listener配置与负载分担2.1 多Listener的应用场…

TypeScript 算法手册 【计数排序】

文章目录 1. 计数排序简介1.1 计数排序定义1.2 计数排序特点 2. 计数排序步骤过程拆解2.1 找出数组中的最大值2.2 创建计数数组2.3 统计每个数字出现的次数2.4 重建排序后的数组 3. 计数排序的优化3.1 处理负数3.2 对象数组排序案例代码和动态图 4. 计数排序的优点5. 计数排序的…

Gradle 8.4.0 配置阿里云镜像的详细指南

引言 Gradle 是一个强大的构建工具,广泛用于自动化构建、测试、发布等过程。然而,由于网络原因,Gradle 默认的 Maven 中央仓库访问速度可能较慢,特别是在中国大陆地区。为了提高依赖下载速度,我们可以配置 Gradle 使用…