JVM
文章平均质量分 69
用手写的从前
如果你也喜欢周杰伦,那我们就是朋友
展开
-
JVM中方法区、永久代、元空间详解以及关系?
我们经常说的方法区只是java虚拟机规范的一个概念,就像是一个接口;那么接口总要有人实现吧,所以永久代和元空间就起着这样的作用,它们实际上都是方法区,是方法区在不同jdk版本的实现....原创 2023-06-12 17:37:34 · 2525 阅读 · 6 评论 -
JVM垃圾回收器
注:这些指令是为每个方法设置的,点击编程工具的Run选项的Edit Configurations,在其中的VM options中输入命令,应用后,我们再次运行此方法即可。2.多线程垃圾回收器:多线程垃圾回收器内部提供多个线程进行垃圾回收,在多 cpu 情况下大大提升垃圾回收效率,但同样也是会暂停其他用户线程。3.此时不再遍历黑色,而再次遍历灰色,灰色变为黑色,若灰色下面有关联的对象,则关联的对象变为灰色。白色:与黑色、灰色对象无关联的,垃圾收集算法不可达的对象,成为垃圾,被回收。原创 2023-02-08 12:00:00 · 316 阅读 · 0 评论 -
JVM垃圾回收
产生背景:复制算法的高效性是建立在存活对象少,垃圾对象多的前提,是十分适用于堆中的新生代的,但是老年区中大部分都是存活对象,如果一味地使用复制算法,由于存活对象很多,复制的成本也会很高。为了兼顾速率,空间开销,是否移动对象这三个指标,标记--压缩算法算的上是中规中矩,单缺点就是效率太慢,因为它相比较标记--清除算法,多了一步内存碎片的整理,这也使得它不会产生内存碎片。:从一些为根对象(GCRoots)的对象出发去查找搜索,与根对象直接或间接连接的对象就是存活对象,不与根对象引用链连接的对象就是垃圾对象,原创 2023-02-07 11:00:00 · 306 阅读 · 0 评论 -
jvm运行时数据区
jvm运行时数据区,分为程序计数器(是线程私有的,记录每个线程运行到哪一行),本地方法栈(运行本地方法),java虚拟机栈(管理方法的调用和运行,每个线程都拥有一个虚拟机栈),堆(用来存储实例对象,是线程共享的),方法区(用来存储类的信息,是线程共享的)。原创 2023-02-06 17:00:00 · 349 阅读 · 0 评论 -
JVM类加载
作用:负责从硬盘/网络中加载字节码信息,加载到内存中(运行时数据区的方法区中)使用IO读取字节码文件,转换并存储为每个类创建一个Class类的对象存储在方法区中(验证,准备,解析)对字节码文件格式进行验证,文件是否被污染对基本的语法格式进行验证为静态的变量进行内存分配value 在准备阶段后的初始值是 0,而不是 123.静态变量在编译期间就初始化将符号引用转为直接引用将字节码中的表现形式转为内存中表现(内存地址)类的初始化,为类中的定义的静态变量进行赋值。原创 2023-02-03 12:00:00 · 263 阅读 · 0 评论 -
JVM概述
2.运行时数据区(存储运行时数据,堆,java虚拟机栈(运行java自己的方法包括自己写的,也包括api的),方法区,程序计数器,本地方法栈)分为系统虚拟机NMware,程序虚拟机JVM。3.执行引擎(更底层,把字节码翻译成机器码)负责将字节码加载到内存中(运行时数据区)面试的需要,基础部分不能区分基础好与坏。在windows中,虚拟一个运行环境。1.类加载器(负责加载字节码文件)对java程序运行的过程更加了解。把字节码翻译为机器码,执行。为写出优质的代码做好准备。原创 2023-02-02 12:00:00 · 274 阅读 · 0 评论