JVM
文章平均质量分 91
怎么起个名就那么难
这个作者很懒,什么都没留下…
展开
-
synchronized详解
多线程系列文章目录多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源可以由多个线程同时访问。 可变:资源可以在其生命周期内被修改引出的问题:由于线程执行的过程是不可控的,所以需要采用同步机制来协同对对象可变状态的访问!文章目录多线程系列文章目录一、如何解决线程并发安全问题?二、synchronized原理详解三丶synchronized底层原理Monitor监视器锁什么是monitor?对象的内存布局原创 2021-04-29 16:51:52 · 627 阅读 · 0 评论 -
JVM常量池详解
JVM系列文章目录提示:这里咱们要说的常量池,常量池就是咱们面试中所说的常量池,谈谈你对常量池的认识?面试官一问咱们就懵逼了,你要记得你脑子中有一张图!!! 剩下的就好办了提示:请各位大佬批评指正!!文章目录JVM系列文章目录前言一、Class常量池与运行时常量池二、字符串常量池八种基本类型的包装类和对象池前言提示:学习的时候会有点头疼哦一、Class常量池与运行时常量池Class常量池可以理解为是Class文件中的资源仓库。 Class文件中除了包含类的版本、字段、方法、接口等描述原创 2021-04-13 14:44:45 · 1649 阅读 · 4 评论 -
GC垃圾收集器G1
JVM系列文章目录提示:强大的垃圾回收器文章目录JVM系列文章目录前言一、G1收集器(-XX:+UseG1GC)被视为JDK1.7以上版本Java虚拟机的一个重要进化特征。它具备以下特点:前言提示:G1(Garbadge First Collector)作为一款JVM最新的垃圾收集器,可以解决CMS中Concurrent Mode Failed问题,尽量缩短处理超大堆的停顿,在G1进行垃圾回收的时候完成内存压缩,降低内存碎片的生成。G1在堆内存比较大的时候表现出比较高吞吐量和短暂的停顿时间,而原创 2021-04-08 12:35:55 · 634 阅读 · 0 评论 -
GC垃圾回收ZGC
ZGC收集器(-XX:+UseZGC)ZGC是一款JDK 11中新加入的具有实验性质的低延迟垃圾收集器,ZGC可以说源自于是Azul System公司开发的C4(Concurrent Continuously Compacting Collector) 收集器。ZGC目标,如下图所说,未来10年的发展趋势,ZGC的优点大内存很大很大如下图所示,ZGC的目标主要有4个:支持TB量级的堆。 我们生产环境的硬盘还没有上TB呢,这应该可以满足未来十年内,所有JAVA应用的需求了吧。最大GC停顿时原创 2021-04-08 12:12:30 · 712 阅读 · 0 评论 -
GC垃圾收集器ParNew&CMS与底层三色标记详解
JVM系列文章目录提示:前面我们说了Minor GC与Full GC 但是GC垃圾收集器又很多种,咱们GC并没有细说 这里咱们细说一下GC垃圾回收器的机制算法在什么时候回收提示:GC没有大家想想的那么复杂神圣,请看我一一的道来,如果我哪里说的不对,清批评指正文章目录JVM系列文章目录前言一、垃圾收集算法二、垃圾收集器1.Serial收集器(-XX:+UseSerialGC -XX:+UseSerialOldGC)2.Parallel Scavenge收集器(-XX:+UseParallelGC(年原创 2021-04-07 17:36:52 · 619 阅读 · 3 评论 -
JVM对象创建与对象内存分配
JVM系列文章JVM对象创建的步骤和对象在堆内存的分配提示:看完记得点赞收藏哦!请多多指教JVM对象创建与对象内存分配JVM系列文章前言一、JVM对象创建?二、对象内存分配2.读入数据总结前言这里要说一下,这块我理解的没有那么透彻,请各位大佬批评指正一、JVM对象创建?前面咱们说过对象的,就绪,检查,准备,解析,初始化但是没有细说1.类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载原创 2021-04-06 17:44:20 · 433 阅读 · 1 评论 -
JVM指令手册
JVM指令JVM指令手册文章目录JVM指令前言一、JVM汇编指令是什么?二、JVM汇编指令代码前言JVM汇编指令 一、JVM汇编指令是什么?答:JVM也是操作系统他自己的语言,最后都是二进制字节码,计算机只认识010101,他不认识你写的那些代码,我只认识0101,我理解的是JVM自己的语言方便分析程序的执行步骤。网上说的都比较官方二、JVM汇编指令代码栈和局部变量操作 将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型原创 2021-04-02 12:59:18 · 415 阅读 · 0 评论 -
JVM结构与内存模型
JVM结构与内存模型 众所周知JAVA是跨平台的语言咱们通过JAVA C命令编译成的.class文件,一次编译导出运行,首先运行需要什么,我们的JAVA环境,JAVA虚拟机中(JVM),因为JVM调用底层C或者C++进行运行,不同的操作系统有不同的虚拟机,Windows系统有windows版本的,Linux有Linux的版本的底层实现不同,所以依赖不同的版本的虚拟机,.class一次编译到处运行提示:下面的环节可能有点绕我尽可能的说清楚先不细说 后面慢慢补充文章目录JVM结构与内存模型前言一、为什么原创 2021-04-02 12:43:33 · 818 阅读 · 6 评论 -
JDK源码JVM类加载机制
JVM类加载机制 首先我们的java小程序demo,经过编译后变成.class文件,他是如何加载到内存的将.class文件内存中有两大对象:1.类的字节码对象,只有一份在内存。2.类对象会有多份文章目录JVM类加载机制前言一、类加载运行全过程1.咱们先看图:2.其中loadClass的类加载过程有如下几步:加载:验证:准备:解析:初始化:二、类加载器和双亲委派机制1.Java里有如下几种类加载器看一个类加载器示例:类加载器初始化过程:如下源码:2.双亲委派机制为什么要设计双亲委派机制?沙箱安全机制:原创 2021-03-31 17:53:49 · 1897 阅读 · 13 评论