文章 2022-12-12 来自:开发者社区

<JVM上篇:内存与垃圾回收篇>03-程序计数器 | 虚拟机栈(二)

4. 虚拟机栈4.1. 虚拟机栈概述4.1.1. 虚拟机栈出现的背景由于跨平台性的设计,Java 的指令都是根据栈来设计的。不同平台 CPU 架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。4.1.2. 初步印象有不少 Java 开发人员一提到 Java 内存结构,就会非常粗粒度地将 JVM 中的内存区理解为仅有 Jav....

<JVM上篇:内存与垃圾回收篇>03-程序计数器 | 虚拟机栈(二)
文章 2022-12-12 来自:开发者社区

<JVM上篇:内存与垃圾回收篇>03-程序计数器 | 虚拟机栈(一)

3. 运行时数据区及程序计数器3.1. 运行时数据区3.1.1. 概述本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用到我们运行时数据区内存是非常重要的系统资源,是硬盘和 CPU 的中间仓库及桥梁,承载....

<JVM上篇:内存与垃圾回收篇>03-程序计数器 | 虚拟机栈(一)
文章 2022-12-11 来自:开发者社区

<JVM上篇:内存与垃圾回收篇>02-类加载子系统(下)

2.3.2. 用户自定义类加载器在 Java 的日常应用程序开发中,类的加载几乎是由上述 3 种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。 为什么要自定义类加载器?隔离加载类(比如项目中的中间件和使用到的框架,有可能会有相同的类路径也一样,可能出现冲突问题,需要类加载器进行冲裁.)修改类加载的方式(修改处理Bootstrap加载器外其他类加载器的使用方式,需....

<JVM上篇:内存与垃圾回收篇>02-类加载子系统(下)
文章 2022-12-11 来自:开发者社区

<JVM上篇:内存与垃圾回收篇>02-类加载子系统(上)

2. 类加载子系统2.1. 内存结构概述Class 文件类加载子系统运行时数据区方法区堆程序计数器虚拟机栈本地方法栈执行引擎本地方法接口本地方法库如果自己想手写一个 Java 虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎2.2. 类加载器与类的加载过程类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载 Class 文件,class 文件在文件开头有特定的文件标识。ClassLoad....

<JVM上篇:内存与垃圾回收篇>02-类加载子系统(上)
文章 2022-12-11 来自:开发者社区

<JVM上篇:内存与垃圾回收篇>01-JVM与Java体系结构(二)

1.6. JVM 的整体结构HotSpot VM 是目前市面上高性能虚拟机的代表作之一。它采用解释器与即时编译器并存的架构。在今天,Java 程序的运行性能早已脱胎换骨,已经达到了可以和 C/C++程序一较高下的地步。1.7. Java 代码执行流程1.8. JVM 的架构模型Java 编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。具体来说:这两....

<JVM上篇:内存与垃圾回收篇>01-JVM与Java体系结构(二)
文章 2022-12-11 来自:开发者社区

<JVM上篇:内存与垃圾回收篇>01-JVM与Java体系结构(一)

1.JVM 与 Java 体系结构1.1. 前言作为 Java 工程师的你曾被伤害过吗?你是否也遇到过这些问题?运行着的线上系统突然卡死,系统无法访问,甚至直接 OOM想解决线上 JVM GC 问题,但却无从下手新项目上线,对各种 JVM 参数设置一脸茫然,直接默认吧然后就 JJ 了每次面试之前都要重新背一遍 JVM 的一些原理概念性的东西,然而面试官却经常问你在实际项目中如何调优 JVM 参数....

<JVM上篇:内存与垃圾回收篇>01-JVM与Java体系结构(一)
文章 2022-08-20 来自:开发者社区

JVM内存区域划分_JVM类加载机制_双亲委派模型_垃圾回收策略GC(JVM)

JVM执行流程我们知道JVM就我们的java虚拟机(Java Virtual Machine)的简称!java执行一个java文件的流程:程序在执行之前先要把java代码转换成字节码(class文件),JVM 首先需要把字节码通过一定的方式类加载器(ClassLoader) 把文件加载到内存中 运行时数据区(Runtime Data Area) ,而字节码文件是 JVM 的一套指令集规范,并不能....

JVM内存区域划分_JVM类加载机制_双亲委派模型_垃圾回收策略GC(JVM)
文章 2022-05-28 来自:开发者社区

JVM从入门到入土之JVM的内存分配策略和垃圾回收器(下)

垃圾收集器到Java8为止Serial收集器历史悠久,jdk1.3虚拟机新生代唯一选择单线程收集器;进行GC工作时必须暂停其他所有的工作线程,直到他收集结束使用复制算法完成1.3-1.7不断追求GC停顿时间的缩短,而获取更好的体验ParNew收集器ParNew收集器是多线程版的Serial,除了使用多条线程进行垃圾回收外。其余行为包括Serial可用的所有参数、收集算法、StopTheWorld....

JVM从入门到入土之JVM的内存分配策略和垃圾回收器(下)
文章 2022-05-28 来自:开发者社区

JVM从入门到入土之JVM的内存分配策略和垃圾回收器(上)

絮叨前面的章节JVM从入门到入土之JVM的类加载机制JVM从入门到入土之JVM的类文件结构JVM从入门到入土之JVM的运行时数据区Java与C++之间有一堵内存动态分配和垃圾收集的高墙 外面的人想进去,里面的人想出来概述那些内存需要回收?什么时候进行回收?如何进行回收?程序计数器、虚拟机栈、本地方法栈这三部分随着线程而生,随着线程而灭。栈中的栈帧随着方法有序的进出。每一个栈帧中分配内- 存是在类....

JVM从入门到入土之JVM的内存分配策略和垃圾回收器(上)
文章 2022-05-24 来自:开发者社区

推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题

一. JVM内存区域的划分1.1 java虚拟机运行时数据区java虚拟机运行时数据区分布图:JVM栈(Java Virtual Machine Stacks): Java中一个线程就会相应有一个线程栈与之对应,因为不同的线程执行逻辑有所不同,因此需要一个独立的线程栈,因此栈存储的信息都是跟当前线程(或程序)相关信息的,包括局部变量、程序运行状态、方法返回值、方法出口等等。每一个方法被调用直至执....

推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题

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

产品推荐

Java开发者

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

+关注