关于 JVM 个人 NOTE

news/2024/10/4 21:57:44 标签: jvm, 笔记

目录

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.niftyadmin.cn/n/5690366.html

相关文章

Spring Boot新闻推荐:实时数据处理

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

jmeter学习(2)变量

1)用户定义的变量 路径:添加-》配置元件-》用户定义的变量 用户定义的变量是全局变量,可以跨线程组被调用,但在启动运行时获取一次值,在运行过程中不再动态获取值。 注意的是,如果在某个线程组定义了全…

关于银联支付交易状态码的一些分析

目录 关于银联支付 一些准备 交易状态码的一些分析 小结 关于银联支付 目前B2C购物支付场景下,支付宝和微信的在线支付已经成为我们经常遇到的支付方式。另外,银联支付也是我们日常的一种支付方式,本文所指的银联支付即指中国银联网关支…

练习题 - DRF 3.x APP Model Serializer 应用模型序列化使用示例和配置方法

在现代 web 开发中,前后端分离已经成为一种流行趋势。Django REST Framework(DRF)是 Django 的一个强大的扩展库,它使得开发者可以轻松地为 Django 应用创建强大的 RESTful API。序列化(Serialization)是 DRF 中的一个关键概念,它允许开发者将复杂的数据类型(例如 Djan…

正点原子阿波罗STM32F429IGT6移植zephyr rtos(二)---使用I2C驱动MPU6050

硬件平台:正点原子阿波罗STM32F429IGT6 zephyr版本:Zephyr version 3.7.99 开发环境:ubuntu 24.4 zephyr驱动开发与之前接触到的开发方式可能都不一样,更像是linux驱动开发,zephyr源码里边其实已经有写好的I2C和MPU60…

spring bean的生命周期是什么?一文读懂 Spring Bean 的生命周期:从创建到销毁的全流程

在现代 Java 开发中,Spring 框架凭借其灵活的依赖注入和简单的配置管理而广受欢迎。而其中的 Spring Bean 生命周期更是开发者必须理解的一个核心概念。在这篇博客中,我们将一同探讨 Spring Bean 的生命周期,从 Bean 的创建、初始化&#xff…

如何在Dev-C++中集成EasyX库:详细指南

EasyX是一款轻量级的C图形库,专门为Windows平台设计,特别适合初学者使用。它通过简单的语法帮助编程爱好者快速绘制图形并开发简单的图形界面程序。Dev-C 是一个非常流行的轻量级C开发环境,结合EasyX库使用,能够让学生和初学者轻松…

大模型训练环境搭建

硬件资源说明 本教程基于GPU 3090的服务器 资源类型 型号 核心指标 CPU Intel(R) Xeon(R) Bronze 3204 CPU 1.90GHz 12核 内存 / 125Gi GPU NVIDIA GeForce RTX 3090 24G显存 注意:接下来的部分命令需要使用科学上网,需要事先配置好。 安…