Java-100天知识进阶-JVM内存-知识铺(三)

知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累。不占太多时间,不停的来唤醒你记忆深处的知识点。

Java内存模型(JMM)

JVM内存模式是JVM的内存分区

Java内存模式是一种虚拟机规范

1.?Jvm内存按照运行时态及内存规范划分

  1. Java内存区域

    2.1** 线程安全 **

    2.1.1 程序计数器

    2.1.2 虚拟机栈

    2.1.3 本地方法

    2.2 线程不安全
    2.2.1 方法区

    2.2.2 堆包含如下图

    2.2.3 堆内存划分

总结:

  1. 程序计算器是唯一不会 OOM区
  2. 堆是gc的主要场所
  3. 线程安全区: 虚拟机栈,本地方法,程序计数器
  4. 非线程安全区:方法区,堆
  5. 堆:划分为 Eden,From Survivor,To Survivor
  6. 堆:各区比例:8:1:1

    本文由zshipu.com学习笔记或整理或转载,如有侵权请联系,必改之。

原文地址:https://www.cnblogs.com/sblig/p/11875790.html

时间: 2024-09-30 09:42:22

Java-100天知识进阶-JVM内存-知识铺(三)的相关文章

JVM内存知识备忘

又是一篇备忘... 主要记录一些知识,进行一些资源的汇总. 先来群里liufor大大提供的两张图,清晰易懂: Dockerized Java https://www.youtube.com/watch?v=NQ5hTEp-GTM Java on Linux for devs and ops https://www.slideshare.net/aragozin/java-on-linux-for-devs-and-ops 常用配置&命令 常用命令 JVM启动用的命令行 jcmd process_

JVM 内存知识总结

本文主要参考内容: http://hllvm.group.iteye.com/group/wiki/3053-JVM http://my.oschina.net/xishuixixia/blog/133850 http://my.oschina.net/xishuixixia/blog/132395 http://www.cnblogs.com/gw811/archive/2012/10/18/2730117.html#undefined 1. JVM 内存模型: 程序计数器寄存器(The pc

JAVA高级篇(二、JVM内存模型、内存管理之第二篇)

本文转自https://zhuanlan.zhihu.com/p/25713880. JVM的基础概念 JVM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机. JVM也充当着一个翻译官的角色,我们编写出的Java程序,是不能够被操作系统所直接识别的,这时候JVM的作用就体现出来了,它负责把我们的程序翻译给系统"听",告诉它我们的程序需要做什么操作. 我们都知道Java的程序需要经过编译后,产生.Class文件,JVM才能识别并运行它,JVM针对每个操作系统

Java核心:类加载和JVM内存的分配

类的加载: 指的是将class文件的二进制数据读入到运行时数据区(JVM在内存中划分的) 中,并在方法区内创建一个class对象. 类加载器: 负责加载编译后的class文件(字节码文件)到JVM(Java虚拟机)当中. 而类加载器主要分为以下几种: 1.Bootstrap class loader (引导类加载器) 负责加载Java核心类库.在jre\lib目录下,包括rt.jar(Java基础类库),这些 都是Java的核心类库.而且这个加载器是由C语言编写的,所以在Java程序中是获取 不

深入理解java:1.3.1 JVM内存区域的划分(运行时数据区)

了解Java GC机制,必须先清楚在JVM中内存区域的划分. JVM的体系结构如下:JVM的类加载系统.执行引擎系统.垃圾回收器都是去访问  运行时数据区. JVM管理的内存区域分为几个模块: (未完待续...)

深入java虚拟机阅读笔记(jvm内存原理、异常处理部分)

深入理解Java虚拟机:JVM高级特性与最佳实践 阅读笔记(内存原理.异常处理): 1.     Jvm运行时,内存划分如图所示: 2.     程序计数器: Jvm将这个计数看作当前线程执行某条字节码的行数,会根据计数器的值来选取需要执行的操作语句.这个属于线程私有,不可共享,如果共享会导致计数混乱,无法准确的执行当前线程需要执行的语句. 该区域不会出现任何OutOfMemoryError的情况. 3.     虚拟机栈 经常说到的栈内存就是指虚拟机栈.Java中每一个方法从调用直至执行完成的

java中jvm内存详解

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步. PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance. GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很

JVM内存分为哪几部分?各个部分的作用是什么?

JVM内存分为哪几部分?各个部分的作用是什么? 1. Java虚拟机内存的五大区域 Java的运行离不开Java虚拟机的支持,今天我就跟大家探讨一下Java虚拟机的一些基础知识. JVM内存区域分为五个部分,分别是堆,方法区,虚拟机栈,本地方法栈,程序计数器.  堆. 堆是Java对象的存储区域,任何用new字段分配的Java对象实例和数组,都被分配在堆上,Java堆可使用-Xms -Xmx进行内存控制,值得一提的是从JDK1.7版本之后,运行时常量池从方法区移到了堆上. 方法区.它用于存储已被

JVM内存分配简介

面向对象进阶 JVM内存分配 1.xxx.java----xxx.class (编译器进行) 2.xxx.class----类加载器(三种)----在内存分配空间 3.JVM会将内存分为5块① 栈:  Java栈区域比较小,空间大约1M. 特点:(存取数据)速度非常快,在栈里边执行的基本上都是快速的任务:基本数据类型和对象的引用.② 堆:  new出来的对象都存放在堆里边,堆里边的每一个对象都会产生一个唯一的地址. 内存地址会赋值给栈里边的引用.堆里边的对象需要垃圾回收机制才能销毁. 要销毁一个