在《 JVM 之(1)运行时数据区》提到,虚拟机栈是 描述Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈?。?hellip;
分类:JVM
CMS与G1 三色标记算法
承上启下 jdk8默认回收器ps+po,jdk9默认就是G1了。但是CMS是并行回收的开始 CMS CMS :ConcurrentMarkSweep 老年代 并发的,垃圾回收和应用程序同时运行,降低STW的时间(200M…
深入理解Java虚拟机:(十二)JVM内的即时编译器
欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。 一、概述 在部分的商用虚拟机中(Sun HotSpot、IBM J9)中,Java 程序…
JVM原理详解-Java程序的执行过程
一、java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的J…
字符串常量池和运行时常量池是在堆还是在方法区?
文章目录 1)方法区包含哪些内容? 2)运行时常量池存在什么地方? 3)取消永久代后,方法区的实现? 4)字符串常量池和运行时常量池究竟去了哪里? 4)元空间是什么? 5)关于为什么移除永久代? 5)补充 &…
JVM教你怎么类加载
一般来说,我们判断两个类是不是同一类,都认为表面是一个类就行了,也就是只要是编译后的字节码文件.class是一样就会认为是同一个类,所以有时候我们可能会盲目的去认为instanceOf去判断。但是呢,其实一个类是通过类加…
JVM之字节码执行引擎
概述 在Java中,编译器讲源代码转成字节码,那么字节码如何被执行的呢?这就涉及到了JVM的字节码执行引擎,执行引擎负责具体的代码调用及执行过程。就目前而言,所有的执行引擎的基本一致: 1. 输入:字节码文件 2. 处理…
类加载的时机与过程
虚拟机把描述类的数据从Class文件加载到内存并对数据进行校验,转换解析和初始化最终形成可以被虚拟机直接使用的java类型这就是虚拟机的类加载机制。  …
写代码实现栈溢出、堆溢出、永久代溢出、直接内存溢出
栈溢出(StackOverflowError) 堆溢出(OutOfMemoryError:Java heap space) 永久代溢出(OutOfMemoryError: PermGen space) 直接内存溢出 一、…
面试官:你是如何理解对象的?带你玩转JVM中的对象及引用
本文通过对象的创建步骤中的检查加载->分配内存->内存空间初始化->设置->对象初始化,对象的内存布局,什么是垃圾的两种算法以及四种引用,讲述JVM中对象及引用,本篇篇幅较长,适合点赞+收藏。有什…