文章 2024-05-07 来自:开发者社区

JVM工作原理与实战(三十):堆内存状况的对比分析

知识点回顾: 解决内存溢出的步骤: 解决内存溢出问题是一个复杂的过程,需要采取一系列专业和系统的方法。以下是解决内存溢出的四个核心步骤: 精确识别问题:...

JVM工作原理与实战(三十):堆内存状况的对比分析
文章 2024-05-07 来自:开发者社区

JVM工作原理与实战(二十三):堆的垃圾回收-引用计数法和可达性分析法

一、判断堆上的对象是否可以回收 在垃圾回收过程中,首要任务是判断哪些对象可以安全地回收。常见的判断方法主要有两种:引用计数法和可达性分析法。 1.引用计数法 引用计数法是一种直观且简单的垃圾回收策略。每个对象都持有一个引用计数器,当一个对象被引用时,其计数器加1;当引用被解除时,计数器减1。当计数器归0时,对象即被认为是可以回收的。 ...

JVM工作原理与实战(二十三):堆的垃圾回收-引用计数法和可达性分析法
文章 2024-03-29 来自:开发者社区

精华推荐 | 【JVM深层系列】「GC底层调优专题」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)

前提介绍 很多小伙伴,都跟我反馈,说自己总是对JVM这一块的学习和认识不够扎实也不够成熟,因为JVM的一些特性以及运作机制总是混淆以及不确定,导致面试和工作实战中出现了很多的纰漏和短板,解决广大小伙伴痛点,我写了本篇文章,希望可以帮助大家夯实基础和锻造JVM技术功底。 什么是垃圾收集(GC) 在JVM领域中GC(Garbage Collection)翻译为 “...

精华推荐 | 【JVM深层系列】「GC底层调优专题」一文带你彻底加强夯实底层原理之GC垃圾回收技术的分析指南(GC原理透析)
文章 2024-01-21 来自:开发者社区

【深入浅出JVM原理及调优】「搭建理论知识框架」全方位带你深度剖析Java线程转储分析的开发指南

专栏介绍 学习JVM需要一定的编程经验和计算机基础知识,适用于从事Java开发、系统架构设计、性能优化、研究学习等领域的专业人士和技术爱好者。 前提准备 编程基础:具备良好的编程基础,理解面向对象编程(OOP)的基本概念,熟悉Java编程语言。 数据结构与算法:对基本的数据结构和算法有一定了解,理解内存管理、线程操作等基本概念。 面向人群 学习本专栏以及本章内容的前提和适用人群...

【深入浅出JVM原理及调优】「搭建理论知识框架」全方位带你深度剖析Java线程转储分析的开发指南
文章 2023-01-12 来自:开发者社区

「作者推荐」【JVM原理探索】字节码指令集调用执行流程分析(语法分析篇)

文章介绍这篇文章讲解了在Java虚拟机上Java代码是如何编译成字节码并执行的。理解在Java虚拟机中Java代码如何别被编译成字节码并执行是非常重要的,因为这可以帮助你理解你的程序在运行时发生了什么。这种理解不仅能确保你对语言特性有逻辑上的认识而且做具体的讨论时可以理解在语言特性上的妥协和副作用。在字节码中每条指令(或操作码)前面的数字指示了这个字节的位置。比如一条指令如1: iconst_1....

「作者推荐」【JVM原理探索】字节码指令集调用执行流程分析(语法分析篇)
文章 2023-01-12 来自:开发者社区

【JVM原理探索】带你梳理分析虚拟机栈映射源代码的流程

Java执行过程介绍类是面向对象编程中最基本的单位。Java中的类包含三个内容,分别是:属性属性又叫成员变量。属性用于定义类或类对象的数据(静态特征)。范围为整个类体。方法方法用于定义类或类对象的行为特征(执行动作)(动态)。方法类似于面向过程中的函数,面向过程中的函数是最基本的单位;面向对象中,最基本单位是类,方法从属于类和对象。构造方法构造方法分为无参构造方法;有参构造方法。构造方法要与类名....

【JVM原理探索】带你梳理分析虚拟机栈映射源代码的流程
文章 2023-01-12 来自:开发者社区

【JVM原理探索】Java各种类型对象占用内存情况分析(补充)

前提回顾建议大家从【JVM研究系列-Java各种类型对象占用内存情况分析】开始学习比较好,这样子会有一个承接和过度。根据前面的学习的内存占用计算规则,可以计算出一个对象在内存中的占用空间大小情况,下面举例分析下Java中的Enum, ArrayList及HashMap的内存占用情况,读者可以仿照分析计算过程来计算其他数据结构的内存占用情况。注: 下面的分析计算基于HotSpot Jvm, JDK....

【JVM原理探索】Java各种类型对象占用内存情况分析(补充)
文章 2023-01-12 来自:开发者社区

【JVM原理探索】Java各种类型对象占用内存情况分析

前言只有当你到了一定层次,需要了解JVM内部运行机制,或者高并发多线程下,你写的代码对内存有影响,你想做性能优化。当你想深入了解java对象在内存中,如何存储,或者每个对象占用多大空间时。内存公式Java对象的内存布局=对象头(Header)+实例数据(Instance Data)+补齐填充(Padding)。补齐填充Java对象占用空间是8字节对齐的,即所有Java对象占用bytes数必须是8....

【JVM原理探索】Java各种类型对象占用内存情况分析
文章 2023-01-12 来自:开发者社区

【JVM原理探索】分析堆外内存(Direct Memory)使用和分析

堆外内存堆外内存,其实就是不受JVM控制的内存。简单来说,除了堆栈内存,剩下的就都是堆外内存了(当然,这是从Java运行时内存的角度来看),堆外内存直接受操作系统管理,而不是虚拟机。而使用堆外内存的原因,相比于堆内内存有几个优势:减少了垃圾回收的工作,因为垃圾回收会暂停其他的工作(可能使用多线程或者时间片的方式,根本感觉不到)堆外内存是直接受操作系统管理的,而不是JVM,因此使用堆外内存的话,就....

【JVM原理探索】分析堆外内存(Direct Memory)使用和分析
文章 2022-02-06 来自:开发者社区

Java 虚拟机原理】Class 字节码二进制文件分析 七 ( 局部变量表分析 )(二)

二、局部变量表在 Student 的 setName 方法中 , 定义了 3 33 个局部变量 , 将 setName 方法的对应字节码的附加信息提取出来单独分析 , 该方法对应的字节码数据中 , 肯定有局部变量表 ;public void setName(java.lang.String); descriptor: (Ljava/lang/String;)V flags: AC...

Java 虚拟机原理】Class 字节码二进制文件分析 七 ( 局部变量表分析 )(二)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注