JVM
文章平均质量分 75
zero
简单不先于复杂,而是在复杂之后!
展开
-
类加载过程
类的加载过程包括加载、检验、准备、解析、初始化五个阶段。原创 2024-08-06 15:20:29 · 769 阅读 · 0 评论 -
偏向锁调用hashCode会怎么样?
偏向锁调用hashCode后锁状态的的变化,轻量级锁退化原创 2024-08-06 14:32:17 · 358 阅读 · 0 评论 -
类加载和new对象的过程区别
类加载的的过程(loadClass)加载:将类加载进内存链接(验证、准备、解析)–验证:验证clas文件格式(魔数、版本号…)、符号引用等信息–准备:为静态变量赋默认值(1.8之后静态变量存放于堆种)–解析:分为静态解析和动态解析,作用主要是将符号引用解析为直接引用初始化:执行< clini>方法,为变量赋初始值。隐式调用构造函数new对象过程判断是否被加载过若没有——加载申请内存空间为对象分配内存空间(指针碰撞、空闲列表)赋默认值执行构造函数...原创 2021-07-28 16:44:10 · 493 阅读 · 0 评论 -
JVM——垃圾回收器与内存分配策略
一、GC的基础知识介绍见垃圾收集器之前,先介绍一下基础知识1、JAVA VS C++javaGC处理垃圾开发效率高,执行效率低C++手工处理垃圾忘记回收—内存泄漏回收多次—非法访问开发效率低,执行效率高2、定位垃圾(如何确认对象的死活)1.引用计数法(REferenc Counting),简称RC如何判断:在对象中添加一个引用计数器,有一个地方引用它,计数器+1;当引用失效时,计数器值就-1,任何时刻计数器位0的对象就是不可被使用的。缺点:不能解决对象原创 2021-07-14 17:12:18 · 228 阅读 · 2 评论 -
使用IDEA配置JVM时控制台输出乱码
使用IDEA配置JVM时控制台输出乱码在idea界面菜单栏——Help——Edit Custon VM Options加上 -Dfile.encoding=utf-8Run菜单栏——run——Edic Configurations——在VM Options中填上 -Dfile.encoding=utf-8,问题解决原创 2021-04-23 17:24:10 · 333 阅读 · 0 评论 -
JVM——运行时数据区域
JAVA运行时数据区1、java程序执行过程了解运行时区域时,先了解一下java程序的执行过程2、运行时区域展示运行时数据区域包括:程序计数器、虚拟机栈、本地方法栈、堆、方法区内存区域展示图各个区域关系展示图多个线程进行调用时展示图3、程序计数器(Program Counter Register)程序计数器(pc)是比较小的一块内存空间,可以看作当前线程所执行的字节码的行号指示器。为了线程切换后能恢复到正确执行位置,每条线程都需要一个独立的程序计数器,各原创 2021-04-21 00:37:31 · 279 阅读 · 0 评论 -
JVM——JAVA内存模型(JAVA Memory Model)
JAVA内存模型(JMM)文章目录JAVA内存模型(JMM)1.存储器的层次结构2.cpu数据缓存的一致性1.总线锁——老的cpu2.缓存锁—MESI Cache一致协议(比较重要)3.现代cpu的数据一致性实现4.详解讲解MESI协议3、cache line的概念、伪共享、缓存行对齐1.缓存行2.伪共享3.缓存对齐4、乱序问题1.cpu的读乱序执行2.cpu的合并写WCBuffer5、保障数据的有序性1.为什么要解决乱序2.硬件层面保障数据有序性3.JVM层面保障数据有序性4.Volatile保障有序性原创 2021-04-19 21:04:21 · 625 阅读 · 0 评论 -
JVM——类加载机制
JVM——类加载机制自己学习做的笔记,哪里有问题还忘大佬指点- java虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。这个过程称为虚拟机的类加载机制。1、类加载的时机1.类的生命周期一个类型被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initializatio原创 2021-04-16 02:14:26 · 162 阅读 · 0 评论 -
JVM——深入剖析class文件结构
JVM——深入剖析class文件原创 2021-04-13 02:42:21 · 231 阅读 · 0 评论 -
IDEA插件(BindED)——查看class文件的十六进制
IDEA插件(BindED)——查看class文件的进制1、安装插件File——settings——Plugins——搜索BinDED——安装——重启安装好插件后重启2、查看class文件的十六进制编写好类后,在菜单栏中build——build project2.之后就会出现out文件夹。编译成class文件3点进class文件,右键选中open as binary查看成功...原创 2021-04-11 23:28:13 · 3535 阅读 · 6 评论 -
JVM——java体系和jvm介绍
JVM——java体系和jvm介绍文章目录JVM——java体系和jvm介绍1、java的体系2、JVM介绍1.JVM概述2.常见的JVM3.JVM与java的关系3、JVM、JRE和JDK概念1.JVM( **Java Virtual Machine** ):2.JRE(Java RunTime Environment )3.JDK(Java Development Kit):3.三者之间的联系和区别4、java编译过程1、java的体系从传统意义上看来,JCP(java社区)官方定义的ja原创 2021-04-11 20:53:13 · 237 阅读 · 0 评论