`

java 虚拟机垃圾回收和内存分配

    博客分类:
  • JAVA
 
阅读更多

一、对象是否存活的判断

1: 引用计数器 (缺点 循环引用)

2: 可达性分析 

 

二、垃圾收集算法

1、标记清除 ,会产生碎片

2、复制算法 ,划分为大小相等的两块,只能使用一半的内存空间

3、标记整理,通过将存活对象都向一段移动,然后将边界的内存清理

4、分代算法: 新生代使用使用复制算法,老年代使用标记清除和标记整理

hotspot实现算法: 枚举根节点、安全点、安全区域 。(只有在安全点和安全区域清理) 

 

三、7种垃圾收集算法

新生代 : serial 单线程 、parnew (多线程的serial)、parallel(多线程 并行)

老年代:serial old 、parallel old  、CMS (并发 用户线程和gc线程同时进行)、G1收集器

 

四、内存分配和回收策略

1: 对象优先在eden 分配

2: 大对象直接进入老年待

3: 长期存活的对象进入老年代

4:    如果survior 空间中相同年龄对象大小的总和大于survior一半时,这些对象进入老年代

5: 保证老年代空间可以容纳新生代,不能容纳时,就需要full gc

 

 

 

分享到:
评论

相关推荐

    Java 虚拟机学习笔记:Java 内存区域,垃圾收集,内存分配与回收策略,JVM 调优,文件结构,类加载机制,Java 程序

    内存分配与回收策略, JVM 调优, 文件结构, 类加载机制, Java 程序 Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行。Java具有简单、...

    基于实时性的Java虚拟机垃圾收集算法

    基于实时性的Java虚拟机垃圾收集算法通过对堆空间划分、引用追踪等方面的改进,成功地减少了GC带来的不确定暂停,降低了暂停的频率和时长,极大地提升了Java在实时性环境下的适用性。这对于工业控制、实时网络游戏等...

    Java虚拟机内存管理总结

    Java虚拟机(JVM)中的内存管理是指Java语言中对象的分配和释放问题。Java中的内存管理可以分为两部分:对象的分配和释放。 对象的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型...

    深入理解Java 虚拟机内存模型.rar

    Java虚拟机(JVM)内存模型是Java编程语言的核心组成部分,它定义了程序运行时的数据区域和内存管理方式。深入理解这一模型对于优化Java应用程序性能、避免内存泄漏以及理解线程安全至关重要。以下是对Java虚拟机...

    java 虚拟机参数配置说明及Myeclipse内存不足

    标准参数通常涉及JVM的内存分配、垃圾回收机制等;非标准参数则涉及到JVM的内部细节和特定功能的开启关闭。 1. **内存配置参数**: - `-Xms` 和 `-Xmx`: 分别用于设定JVM的初始堆内存和最大堆内存。例如,`-Xms256...

    java虚拟机

    3. **垃圾收集与内存管理**:JVM负责自动管理内存,包括对象的分配和回收。垃圾收集器是其重要组成部分,通过标记-清除、复制、标记-整理和分代收集等多种算法来释放不再使用的内存。 4. **类加载过程**:类的生命...

    JAVA虚拟机内存分配机制

    JAVA虚拟机内存分配机制是Java程序执行过程中内存管理的核心部分,它涉及到程序的性能和效率。Java虚拟机(JVM)内存主要分为两大部分:栈内存和堆内存。 栈内存主要存储程序运行过程中的局部变量,包括基本类型...

    java虚拟机(jvm)介绍以及相关参数设置与调优

    Java虚拟机(JVM)是Java平台的核心组件之一,它提供了一个运行Java字节码的环境,并且负责管理Java程序的内存分配和垃圾回收。在本文中,我们将深入探讨Java虚拟机的体系结构、垃圾回收机制、Java对象的生命周期和...

    Java 虚拟机JVM内存模型

    ### Java 虚拟机JVM内存模型知识点 #### 1. JVM概述 ##### 1.1 Java的特性与JVM的应用 ...在实际开发过程中,合理配置JVM参数、选择合适的垃圾收集器和优化内存分配策略是提升Java应用性能的关键。

    深入java虚拟机 高清pdf 高清高清高清

    它详尽地探讨了Java虚拟机的工作原理、内存管理、类加载机制、字节码执行以及性能优化等多个核心主题,旨在帮助开发者提升程序的运行效率和稳定性。 1. **Java虚拟机概述**:Java虚拟机是Java平台的核心组件,它...

    安卓的JAVA虚拟机 简单实用

    Android的JAVA虚拟机负责内存分配和回收,防止内存泄漏。Dalvik和ART都实现了垃圾回收机制,自动回收不再使用的对象所占用的内存。这使得开发者无需手动管理内存,专注于应用程序的逻辑开发。 5. **多线程与并发**...

    java虚拟机垃圾回收详解.docx

    Java虚拟机(JVM)的垃圾回收(Garbage Collection, GC)是Java编程中的关键概念,它自动管理程序中的内存,避免程序员手动处理内存释放,从而减少内存泄露和程序崩溃的风险。垃圾回收机制的主要目标是识别并回收...

    1_Java虚拟机(垃圾收集器和算法).pdf

    Java虚拟机(JVM)是运行Java程序的核心环境,它负责解释执行Java字节码,管理和分配内存,以及进行垃圾收集等任务。本文详细探讨了JVM中的垃圾收集器和垃圾收集算法,以帮助开发者深入理解Java虚拟机的内部运作机制...

    JAVA虚拟机的内存管理

    ### JAVA虚拟机的内存管理详解 #### 一、引言 在Java 2平台的强大支持下,J2SE能够自动管理内存,这大大减轻了开发者的负担,让他们不必再进行复杂的显式内存管理工作。本文档旨在对Sun J2SE 5.0版本中的Java ...

    JAVA虚拟机解读入门

    JVM的主要任务包括加载类、验证字节码的安全性、分配内存、垃圾回收以及方法调用等。理解JVM的工作流程对于优化Java程序性能、解决运行时问题以及提高编程效率至关重要。 首先,我们来探讨JVM的结构。JVM主要包括...

    Java虚拟机规范 深入java虚拟机

    它详细阐述了Java虚拟机(JVM)的工作原理,包括内存管理、类加载机制、字节码执行以及垃圾回收等核心概念。深入理解这些知识点对于提升程序性能、解决运行时问题以及设计高效的应用程序至关重要。 1. **JVM架构** ...

    JAVA虚拟机内存分配与回收机制[文].pdf

    JAVA虚拟机的内存分配与回收机制是JAVA语言的核心机制之一,栈和堆是JAVA用于在RAM中存放数据的地方,JAVA自动管理栈和堆,程序员不能直接地设置栈或堆。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小...

    Java虚拟机内存管理与内存泄漏.pdf

    Java虚拟机(JVM)内存管理是Java开发技术中的一个重要组成部分,它涉及了垃圾回收机制、内存泄漏问题以及内存分配策略等多个方面。在Java虚拟机内存管理中,垃圾回收机制的存在经常被初级程序员所忽略,因为它自动...

    Java虚拟机规范中文版

    《Java虚拟机规范》是Java技术的核心文档之一,它详细描述了Java虚拟机(JVM)的行为,包括其内部结构、数据类型、执行模型、指令集、运行时数据区、垃圾回收机制和安全管理等内容。该规范是Java平台实现的基石,对...

Global site tag (gtag.js) - Google Analytics