首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
JVM笔记(虚拟机各内存的介绍)
】的更多相关文章
JVM笔记(虚拟机各内存的介绍)
JVM笔记 java代码执行分为两部分:javac编译 java执行 代码并不是由上往下执行的,会经过编译期重排序进行优化,存在依赖关系的代码不会被重排序,保证了代码最终执行结果的正确性! java虚拟机规范,运行时数据区通常包括: 程序计数器(Program Counter Register) java栈(VM Stack) 本地方法栈(Native Method Stack) 方法区(Method Area) 堆(Heap) * 不同的虚拟机厂商有不同的实现方式 程序计数器: 程…
JVM笔记-运行时内存区域划分
1. 概述 Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分为若干个不同的数据区域.它们各有用途,有些随着虚拟机进程的启动一直存在(堆.方法区),有些则随着用户线程的启动和结束而建立和销毁(程序计数器.虚拟机栈.本地方法栈). <Java 虚拟机规范>中规定 Java 虚拟机管理的内存包括以下几个区域: 下面简要分析各个区域的特点. 2. JVM 运行时内存区域 2.1 程序计数器 程序计数器(Program Counter Register),可以看做当前线程所执行的字节码…
JVM笔记(一) Java内存区域
Java 内存区域 总概 java虚拟机在执行java程序的过程中,会把它管理的内存划分为几个不同的数据区域.每当运行一个java程序时,就会启动一个虚拟机. 具体的区域如图所示: 同时,方法区 与 堆 是由所有线程共享的数据区:而 虚拟机栈.本地方法栈.程序计数器 则是被线程隔离的区域. 一.程序计数器 什么是程序计数器? 概念:就是当前线程所执行的字节码的行号指示器. JVM的概念模型中,字节码解释器通过改变这个计数器的值来选取下一条字节码指令. JVM的多线程其实就是通过线程轮流切换并分配…
JVM内存区域介绍
学习JVM第一个要了解的就是JVM的内存区域. Java虚拟机在运行时会从操作系统内存中划分一部分出来作为JVM内存,而JVM内存又划分为以下几个区域: 大体上可以分为两种: 线程共享数据区 该类型的数据区,多个线程共用一个数据区. 线程私有数据区 该类型的数据区,每个线程都拥有自己独立的数据区. 下面逐一介绍图中的数据区: 程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器. 字节码解释工作就是通过改变…
Java虚拟机的内存组成以及堆内存介绍
一.java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时创建的.”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”.可以看出JVM主要管理两种类型的内存:堆和非堆.简单来说堆就是Java代码可及的内存,是留给开发人员使用的:非堆就是JVM留给 自己用的,所以方法区.JVM内部处理或优化所需的内存(如JIT编译后的代码缓存).每…
《深入java虚拟机》读书笔记之Java内存区域
前言 该读书笔记用于记录在学习<深入理解Java虚拟机--JVM高级特性与最佳实践>一书中的一些重要知识点,对其中的部分内容进行归纳,主要是方便之后进行复习. 运行时数据区域 Java虚拟机在执行过程中会将其管理的内存划分为多个不同的数据区域.其中一些区域随着虚拟机启动而创建,一些区域生命周期则依赖用户线程的启动和结束. 下面是JDK1.7 程序计数器 是一块较小的内存空间,用于记录当前线程所执行的字节码的行号,在执行过程中通过改变计数器的值来选择下一条被执行的指令.分支.循环.异常处理等都通…
[二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义
前言简介 class文件是源代码经过编译后的一种平台中立的格式 里面包含了虚拟机运行所需要的所有信息,相当于 JVM的机器语言 JVM全称是Java Virtual Machine ,既然是虚拟机,他终归要运行在物理机上 在操作系统中体现出来的也就是一个进程 操作系统会给他分配资源,割一块内存作为他的地盘 class文件是静态的,想要运行程序,JVM需要将class文件中的信息加载到加载到他的地盘 然后处理他可以处理的数据类型的数据 JVM将这块内存按照功能进行了更细的划分,不过终究是一个…
深入理解JAVA虚拟机(内存模型+GC算法+JVM调优)
目录 1.Java虚拟机内存模型 1.1 程序计数器 1.2 Java虚拟机栈 局部变量 1.3 本地方法栈 1.4 Java堆 1.5 方法区(永久区.元空间) 附图 2.JVM内存分配参数 2.1 设置最大堆内存 2.2 设置最小堆内存 2.3 设置新生代 2.4 设置持久代 2.5 设置线程栈 2.6 堆的内存分配 2.7 堆分配参数总结 3.垃圾收集基础 3.1 垃圾收集的作用 3.2 垃圾回收算法与思想 3.2.1 引用计数法(Reference Counting) 3.2.2 标记-…
1 - JVM随笔分类(java虚拟机的内存区域分配(一个不断记录和推翻以及再记录的一个过程))
java虚拟机的内存区域分配 在JVM运行时,类加载器ClassLoader在加载到类的字节码后,交由jvm的执行引擎处理, 执行过程中需要空间来存储数据(类似于Cpu及主存),此时的这段空间的分配和释放过程是 此处需要关心和理解的,暂可以称为运行时的数据的内存区的分配, 首先运行时的数据区包括,程序计数器,以及Stack(虚拟机 栈),以及虚拟机堆,方法区,本地方法栈, 虽然运行时区域分配只要包含上述的描述组件,但实际运行中,程序计数器外,应该再加一个寄存器, 目前先描述上面5个,寄存…
推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)
欢迎一起学习 <提升能力,涨薪可待篇> <面试知识,工作可待篇 > <实战演练,拒绝996篇 > 欢迎关注我博客 也欢迎关注公 众 号[Ccww笔记],原创技术文章第 一时间推出 如果此文对你有帮助.喜欢的话,那就点个赞,点个关注呗! <能力提升,加薪可待-JVM篇>-JVM虚拟机(内存.垃圾回收.性能优化) 一. JVM内存区域的划分 1.1 java虚拟机运行时数据区 java虚拟机运行时数据区分布图: JVM栈(Java Virtual Machine…