`
yuren1hao
  • 浏览: 2317 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

深入理解Java虚拟机纪要(一):java内存区域与内存溢出异常

    博客分类:
  • java
阅读更多

自动内存管理机制



 

1 虚拟机栈:存放某个函数方法中得局部变量,为虚拟机执行java方法服务。为线程私有的内存

 

2 本地方法栈:栈,为调用native方法的服务。

 

3 java堆:存放所有得对象实例,java虚拟机器所管理得内存中最大得一块。java堆被所有线程共享。垃圾回收管理的主要区域。

 

4 方法区:存放已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。常被hotspot作为永久代处理

 

5 运行时常量池:方法区的一部分。存放编译时生产的各种字面值和符号引用。

 

6 直接内存:jdk使用native函数库直接分配的对外内存,在java堆中分配的对应操作这块区域的引用的区域,叫做直接内存。

 

7:内存溢出设定

-Xms:20M  设定堆内存大小

-XX:Persize=15M   -XX:MaxPermSize=256M 方法区内存大小

-XX:MaxDirectMemorySize=10M   直接内存大小

 

8:虚拟机对象

 对象创建:正确划分可用空间,保障划分空间的原子性(CAS、TLAB)

 对象内存布局:对象头、实例对象、对齐补充。 

 对象的访问:通过栈上的reference数据来操作堆上的对象。

 分为两种方式:

通过句柄



 

通过直接指针:



 

 

 9 OutOfMemeroy

java堆:-XX调节堆大小   

   内存泄露:有GC Roots的引用路径。则,根据引用链路确定对应的泄露代码位置。

   内存溢出:没有到GC Roots的引用链路。则,需要检查对应的对参数是否合适。-Xmx与-Xms

栈:-Xss调节栈大小

  StackOutOfMemory异常:栈深度溢出。

  OutOfMemeryError:栈空间不足溢出

方法区:-XX:PermSiz -XX:MaxPerSzie 设置方法区值和最大值。

  OutOfMemory:PermGen space  方法区(老年代)溢出

直接内存区 -XX:MaxDirectMemorySize指定直接内存。

 

 

 

 

 

  • 大小: 299.8 KB
  • 大小: 293.6 KB
  • 大小: 275.8 KB
分享到:
评论

相关推荐

    深入理解Java虚拟机JVM高级特性与最佳实践1

    《深入理解Java虚拟机JVM高级特性与最佳实践》是一本专注于Java开发人员提升技术水平的著作,由周志明撰写。这本书旨在填补Java技术体系中关于Java虚拟机(JVM)知识的空白,帮助读者深入理解JVM的工作原理及其对...

    深入Java虚拟机(原书第2版).pdf【附光盘内容】

     作者以易于理解的方式深入揭示了java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益!  本书共分20章,第1-4章解释了java虚拟机的体系结构,包括java栈、堆、方法区、执行...

    深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理).zip

    《深入理解Java虚拟机》是一本深度探讨Java虚拟机(JVM)的著作,涵盖了JVM性能调优、内存模型以及虚拟机原理等多个关键领域。本文将基于这些主题,详细阐述其中的重要知识点。 首先,我们要了解Java虚拟机(JVM)...

    深入理解Java虚拟机——Java内存区域与内存溢出异常.xmind

    这是自己读《深入理解Java虚拟机》时候用XMind建立的思维导图,目的是为了能够帮助自己整理、梳理相关的知识以及方便自己日后的回顾,帮助自己建立起关于JVM的知识体系,里边也有一些对相关内容的补充,通过备注的...

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

    3. **垃圾收集与内存管理**:Java虚拟机中的垃圾收集机制是自动进行内存管理的关键。书里介绍了不同的垃圾收集算法(如标记-清除、复制、标记-整理、分代收集等)以及垃圾收集器(如Serial、ParNew、CMS、G1等),...

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

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

    深入理解java虚拟机视频教程

    深入理解java虚拟机视频教程,jvm原理,java虚拟机,jvm性能调优,内存模型,gc工作原理,内存分配,类的加载等等视频教程

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

    - **内存溢出与内存泄漏**:当内存耗尽或无法合理分配时,可能出现溢出;内存泄漏指对象不再使用但未被释放,占用内存持续增长。 - **内存优化**:通过调整JVM参数,如堆大小、新生代和老年代比例、GC策略等,以提高...

    深入理解Java虚拟机(第二版)_java_

    《深入理解Java虚拟机(第二版)》还详细讨论了JVM的其他重要主题,如异常处理、反射、类加载器自定义、线程与同步、JVM调优工具的使用等。通过阅读本书,读者不仅可以深化对Java技术的理解,还能提升解决问题的能力...

    深入理解Java虚拟机.rar_JAVA虚拟机_java_深入理解JVM:pdf_深入理解Java_深入理解jvm

    了解jvm的pdf,高清pdf,希望大家下载

    深入java虚拟机.pdf

    深入 Java 虚拟机.pdf Java 虚拟机(Java Virtual Machine,JVM)是 Java 语言的 runtime 环境,是 Java 程序执行的核心组件。它提供了一个平台无关的环境,允许 Java 程序在不同的操作系统和硬件平台上运行。 一...

    30+个视频+深入理解Java虚拟机(jvm优化+内存模型+虚拟机原理)

    根据提供的文件标题、描述、标签以及部分内容,我们可以深入探讨与Java虚拟机(JVM)相关的多个核心知识点。以下是对这些主题的详细阐述: ### Java虚拟机(JVM)概述 Java虚拟机(JVM)是一种用于执行Java字节码的...

    深入JAVA虚拟机 不那么完美的第二版.pdf.zip

    虽然《深入JAVA虚拟机》的第二版可能在物理形态上有些许不足,但其内容依然对理解JVM的运作机制有着重要的指导意义。学习这些知识点,有助于Java开发者提升代码的运行效率,解决内存问题,以及进行性能优化。

    深入理解Java虚拟机学习笔记借鉴.pdf

    虚拟机栈区是 JVM 的一个私有内存区域,每个线程都需要有一个独立的虚拟机栈,用于存储局部变量、操作数栈、动态链接、方法出口等信息。虚拟机栈的生命周期与线程相同,每个方法从调用直至执行完成的过程,就对应着...

    深入理解 Java 虚拟机 - v1.0.pdf

    虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种...Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

    深入Java虚拟机——本地方法栈.pdf

    Java虚拟机(JVM)是Java程序运行的基础,它提供了执行环境和各种内存区域,以支持Java代码的高效运行。本地方法栈是JVM的一部分,它主要负责处理与本地方法(通常是由C或C++编写)相关的调用。本地方法栈在Java线程...

    学习深入理解Java虚拟机的前几章笔记

    ### 学习深入理解Java虚拟机的前几章笔记 #### JVM内存模型 Java虚拟机(JVM)的内存模型主要分为两大类:线程共享区和线程私有区。 ##### 线程共享区 - **堆**:是所有线程共享的内存区域,在这里存放着对象实例...

    深入JAVA虚拟机第二版 Bill Venners著 曹晓钢 蒋靖译

    这本书是Java开发者必备的经典读物,它详细地解析了Java虚拟机(JVM)的工作原理,帮助读者深入理解Java程序的运行机制。尽管描述中提到内容为图片形式,但我们可以从其主题和标签中提炼出许多关于JVM的重要知识点。...

    诸葛 BAT面试之深入理解Java虚拟机 9

    诸葛_BAT面试之深入理解Java虚拟机_9

Global site tag (gtag.js) - Google Analytics