你们出来吧出来吧
上帝家老二!
展开
-
深入理解JVM虚拟机第四十篇:图解对象分配过程
😉😉 欢迎加入我们的学习交流群呀!✅✅1:这是给大家的福利!✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring、Security、Docker、Grpc、消息中间件、Rpc、SpringCloud等等很多应用和源码级别高质量视频和笔记资料,你想学的我们这里都有!🥭🥭3:QQ群:583783824📚📚 工作VX:拉你进VX群,免费领取!💞💞4:以上内容,进群免费领取呦~ 💞💞💞💞。原创 2024-01-20 23:27:47 · 124 阅读 · 1 评论 -
深入理解JVM虚拟机第三十九篇:JVM中新生代和老年代相关参数设置
前边我们已经说过了,怎么设置堆空间的大小。我们也知道了,堆空间的大小本质上也由新生代和老年代组成。年轻代和老年代的比例怎么构成?如何修改呢?这就是我们本篇文章想要和大家说明白的问题。存储在JVM中的Java对象可以被划分为两类:一类是生命周期较短的瞬时对象,这类对象的创建和消亡都非常迅速。另外一类对象的生命周期却非常长,在某些极端的情况下还能够与JVM的生命周期保持一致(Spring工厂对象)。原创 2024-01-15 21:34:15 · 7284 阅读 · 11 评论 -
深入理解JVM虚拟机第三十八篇:JVM中OOM的说明和举例
对象是存储在堆空间中,我们想要展示OutOfMemory我们只需要玩命创建对象即可。原创 2024-01-14 21:02:59 · 174 阅读 · 1 评论 -
深入理解JVM虚拟机第三十七篇:如何设置和查看JVM堆内存的大小
Java。大家可以通过选项”-Xmx”和”-Xms”来进行设置。“-Xms”用于表示堆区的起始内存,等价于-XX:InitialHeapSize-Xmx”则用于表示堆区的最大内存,等价于-XX:MaxHeapSize所谓的等价于,就是设置的时候使用那套参数都一样。后续性能优化的时候咱们细写每个符号啥意思。这个参数后边如果不跟单位的话,那么默认指定的就是字节,后边如果跟着的是KMG的话指定的分别是KB、MB、GB。原创 2024-01-13 22:29:04 · 575 阅读 · 8 评论 -
深入理解JVM虚拟机第三十六篇:JVM堆空间的细分结构概述
现代垃圾收集器大部分都是基于分带收集理论设计,对空间的细分大致如下:Java7之前对内存逻辑上分为三部分:新生代+老年代+永久代Java8及之后对内存逻辑上分为三部分:新生代+老年代+元空间(MetaSpace)所谓的分代就是将堆空间再次细分程一个区域一个区域的。这个分带垃圾收集算法就是基于分带理论来讲的。上述中的年轻代就是新生区,右侧蓝色部分就是老年代!Java7中我们叫永久代,Java8之后,我们叫元空间。首先我们知道逻辑上分为三部分,其实是不包括这个永久代的。原创 2023-12-19 21:36:28 · 504 阅读 · 3 评论 -
深入理解JVM虚拟机第三十五篇:JVM堆空间关于对象创建和GC的概述
磁盘上存储文件的时候,跟内存中大致还是很相似的,存储的时候并不要求空间连续,只不过如果空间连续会有:存取较快、分配简单的好处。这个涉及到一个虚拟内存的问题:我们物理内存和逻辑上内存可以建立一个映射关系(映射表)这样的话实际上不连续的内存空间在我们逻辑上可以看成是连续的。当然,出栈和GC的发生并不是连锁甚至前后脚的事,他们两个的发生没有必然关联,甚至可能间隔很长时间!当我们有大对象和大内存的区域,频繁的进行回收需要去提升我们的性能,我们希望用户线程执行的越多越快。我们知道,所有的线程都会共享堆空间,原创 2023-12-19 08:56:18 · 1044 阅读 · 7 评论 -
深入理解JVM虚拟机第三十四篇:JVM堆空间概述以及堆空间在JVM进程中唯一性
一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM 启动的时候即被创建,JVM启动时堆空间大小也就确定了,堆是JVM管理的最大一块内存空间。PS:我们启动Java程序的时候,JVM是由BootStrap这个引导类加载器启动的。JVM一起动,运行时数据区和其中的空间内容被创建。他们的空间大小也就创建了。然而,堆内存的大小是可以调节的也必须可以调节,堆空间大一些可以降低GC的频率,因为如果堆的空间太小即使有GC的频率够快,一些问题也是解决不了的。原创 2023-12-18 21:56:31 · 860 阅读 · 1 评论 -
深入理解JVM虚拟机第三十三篇:详解JVM学习路线与内容回顾
我们需要了解类加载器,了解到到底是什么内容将我们的class文件加载到我们的内存当中,并且我们还需要对我们的class文件整体结构进行详细的了解,除此之外,字节码指令是如何执行的?JVM当中的执行引擎是什么回事?所以,我们必须去了解JVM的结构和内存的分配和回收,这里边就对应了我们的运行时数据区,内存的分配和各种各样的垃圾回收算法!类加载器的产出内容就是将class文件的内容存储到我们的JVM内存中,这个原料就是class文件。咱们学习JVM的最终目的肯定是在我们的系统应用面临瓶颈的时候,如何去突破瓶颈。原创 2023-12-18 20:34:06 · 443 阅读 · 2 评论 -
深入理解JVM虚拟机第三十二篇:详解JVM当中本地方法栈
本地方法栈是我们运行时数据区最后一块内容了。Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用。本地方法栈,也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小。《在内存溢出方面是相同的)原创 2023-12-17 20:23:11 · 710 阅读 · 29 评论 -
深入理解JVM虚拟机第三十一篇:详解JVM当中本地方法接口
本地方法接口对应了图中的这个位置。我们讲解完毕之后本地方法接口之后,我们在回去讲运行时数据区中的本地方法栈。简单地讲,一个Native Met就是一个Java调用非Java代码的接口。一个Native Method是这样一个Java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java所特有,很多其它的编程语言都有这一机制,比如在C++中你可以用extern “c"告知C++编译器去调用一个C的函数。原创 2023-12-17 19:59:37 · 839 阅读 · 0 评论 -
深入理解JVM虚拟机第三十篇:详解JVM当中栈帧的一些附加信息以及虚拟机栈的5个面试题
这个得具体问题具体分析。//线程安全的//线程不安全的。//把变量丢出去,有可能不安全。return s;}).start();method2(s);method1();原创 2023-12-14 21:17:23 · 441 阅读 · 3 评论 -
深入理解JVM虚拟机第二十九篇:详解JVM当中方法返回值地址
到现在我们已经分享过局部变量表、操作数栈、动态链接。接下来我们来分享方法返回值地址。我们知道局部变量表和操作数栈是最重要的两个部分。剩下的就没有那个重要了。方法返回值地址、动态链接和一些附加信息被称为帧数据区。原创 2023-12-13 23:55:15 · 978 阅读 · 6 评论 -
深入理解JVM虚拟机第二十八篇:详解JVM当中方法重写的本质和虚方法表
第一步:当我们去调用一个对象的方法的时候,首先会将这个对象压入操作数栈,经过invokeVurtual字节码指令去尝试调用方法。此时,当前被调用方法的对象位于操作数栈的栈顶,然后这个对象的方法类型被记作Type第二步:如果在类型 Type中找到与常量中的描述符合、简单名称都相符的方法,则进行访问权限校验,如果通过也就是有权限,则返回这个方法的直接引用,查找过程结束。如果不通过,则返回java.lang.IllegalAccessError 异常,这是一个非法访问的异常。原创 2023-12-11 22:30:56 · 1025 阅读 · 8 评论 -
深入理解JVM虚拟机第二十七篇:详解JVM当中InvokeDynamic字节码指令,Java是动态类型语言么?
2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料583783824。原创 2023-12-04 22:11:08 · 1166 阅读 · 4 评论 -
深入理解JVM虚拟机第二十六篇:详解JVM当中的虚方法和非虚方法,并从字节码指令的角度去分析虚方法和非虚方法
本文是深入理解JVM虚拟机第二十六篇,详解JVM当中的虚方法和非虚方法,并从字节码指令的角度去分析虚方法和非虚方法的概念,有详细的代码示例,欢迎查阅!原创 2023-11-26 22:46:32 · 1225 阅读 · 23 评论 -
深入理解JVM虚拟机第二十五篇:详解JVM方法的绑定机制静态绑定和动态绑定,早期绑定晚期绑定,并编写代码从字节码角度证明这件事情
本文是深入理解JVM虚拟机系列文章中的第二十五篇,这这篇文章中我们详细详介绍了JVM方法的绑定机制静态绑定和动态绑定,早期绑定晚期绑定,并编写代码从字节码角度证明这件事情原创 2023-11-14 23:20:17 · 751 阅读 · 2 评论 -
深入理解JVM虚拟机第二十四篇:详解JVM当中的动态链接和常量池的作用
本文是深入理解JVM虚拟机第二十四篇,详细讲解了JVM当中的动态链接和常量池的作用原创 2023-11-12 21:25:53 · 914 阅读 · 3 评论 -
深入理解JVM虚拟机第二十三篇:详解JVM当中的栈顶缓存技术
本文是深入理解JVM虚拟机系列文章中第二十三篇,复习了一下局部变量表的核心内容,并对JVM当栈顶缓存技术进行了详解原创 2023-11-11 15:11:08 · 1358 阅读 · 1 评论 -
深入理解JVM虚拟机第二十二篇:详解JVM当中与操作数栈相关的字节码指令
本文是深入理解JVM虚拟机第二十二篇,详细讲解了JVM当中与操作数栈相关的字节码指令,并对字节码指令运行过程画了详细的示意图,诚意满满,欢迎大家品读原创 2023-11-09 21:43:33 · 1605 阅读 · 1 评论 -
深入理解JVM虚拟机第二十一篇:详解JVM当中的操作数在栈以及分析操作数栈与字节码指令和执行引擎的关系图解
本文是深入理解JVM虚拟机第二十一篇,详细讲解了JVM当中的操作数栈的概念和作用以及分析操作数栈与字节码指令的相关关系,并绘制了操作数栈、字节码指令和执行引擎的关系图解关系原创 2023-11-09 19:50:02 · 1277 阅读 · 2 评论 -
深入理解JVM虚拟机第二十篇:静态变量和局部变量的对比以及栈帧对垃圾回收的意义以及JVM中栈帧与堆内对象的应用关系图示
本文是深入理解JVM虚拟机第二十篇,详细介绍了静态变量和局部变量的对比以及栈栈帧与队内对象的引用关系和局部变量表对垃圾回收的意义原创 2023-11-08 22:59:42 · 2269 阅读 · 2 评论 -
深入理解JVM虚拟机第十九篇:JVM字节码中方法内部的结构和与局部变量表中变量槽的介绍
本文是深入理解JVM虚拟机第十九篇,详细讲解了JVM字节码中方法内部的结构和与局部变量表中变量槽原创 2023-11-07 22:39:57 · 2925 阅读 · 2 评论 -
深入理解JVM虚拟机第十八篇:JVM种局部变量表结构的认识
本文是深入理解JVM虚拟机第十八篇,详细讲解了JVM种局部变量表结构的认识原创 2023-11-06 23:00:05 · 13559 阅读 · 16 评论 -
深入理解JVM虚拟机第十七篇:虚拟机栈中栈帧的内部结构
本文是深入理解JVM虚拟机第十七篇,详细讲解了虚拟机栈中栈帧的内部结构原创 2023-11-05 18:29:22 · 13435 阅读 · 2 评论 -
深入理解JVM虚拟机第十六篇:虚拟机栈存储结构和运行原理
本文是深入理解JVM虚拟机第十六篇,详细介绍了虚拟机栈存储结构和运行原理原创 2023-11-05 00:21:07 · 14042 阅读 · 3 评论 -
深入理解JVM虚拟机第十五篇:虚拟机栈常见异常以及如何设置虚拟机栈的大小
本文是深入理解JVM虚拟机第十五篇,详细介绍了虚拟机栈常见异常以及如何虚拟机栈的设置大小原创 2023-11-01 22:37:10 · 17749 阅读 · 1 评论 -
深入理解JVM虚拟机第十四篇:虚拟机栈的特点和详细介绍
本文是深入理解JVM虚拟机第十四篇,详细介绍了虚拟机栈的特点和概念原创 2023-11-01 00:16:25 · 17764 阅读 · 4 评论 -
深入理解JVM虚拟机第十三篇:详解JVM中的程序计数器
本文是深入理解JVM虚拟机第十三篇,详解了JVM中的程序计数器原创 2023-10-24 23:16:31 · 19419 阅读 · 3 评论 -
深入理解JVM虚拟机第十二篇:JVM中的线程说明
本文是深入理解JVM虚拟机第十二篇,详细对JVM中的线程进行了说明原创 2023-10-23 22:57:54 · 19161 阅读 · 0 评论 -
深入理解JVM虚拟机第十一篇:详细介绍JVM中运行时数据区
本文是深入理解JVM虚拟机系列文章中的第十一篇,详细介绍JVM中运行时数据区原创 2023-10-01 08:10:49 · 19294 阅读 · 10 评论 -
深入理解JVM虚拟机第十篇:两个Class对象是否来源于一个类文件的标准以及类的主动使用与被动使用
本文是深入理解JVM虚拟机系列文章中的第十篇,主要介绍了如何判断两个Class对象是否来源于一个类文件的标准,以及详细介绍什么是类的主动使用与被动使用原创 2023-09-24 21:32:49 · 18825 阅读 · 18 评论 -
深入理解JVM虚拟机第九篇:详细介绍JVM中的双亲委派机制工作原理和机制
本文是深入理解JVM虚拟机系列文章中的第九篇,在本文章中详细介绍JVM中的双亲委派机制工作原理和和优势,又介绍了沙箱机制的概念和优点,欢迎大家品读。原创 2023-09-20 22:09:01 · 19210 阅读 · 15 评论 -
深入理解JVM虚拟机第八篇:引导类加载器 、拓展类加载器、应用类加载器与自定义类加载器
本文详细介绍了什么是引导类加载器、拓展类加载器、系统类加载器和自定义类加载器,以及他们彼此之间的关系。原创 2023-09-18 21:25:20 · 18900 阅读 · 20 评论 -
深入理解JVM虚拟机第七篇:类加载器与类加载过程
本文详细介绍了类加载器子系统、运行时常量池以及类加载的每一步的详细过程和具体细节。原创 2023-09-14 23:13:30 · 18921 阅读 · 66 评论 -
深入理解JVM虚拟机第六篇:内存结构与类加载子系统概述
概要介绍了JVM的运行时数据区的每部分的功能,绘制了JVM运行时数据区的简图,JVM运行时数据区的中英文详细图,对类加载子系统有一个简要的介绍。原创 2023-09-13 22:34:43 · 18809 阅读 · 30 评论 -
深入理解JVM虚拟机第五篇:一些常用的JVM虚拟机(二)
详细介绍9款JVM虚拟机,欢迎大家品尝!原创 2023-09-13 20:12:28 · 19394 阅读 · 7 评论 -
深入理解JVM虚拟机第四篇:一些常用的JVM虚拟机(一)
具体引用的这个内容是一个具体的数据大小,还是一个对象的地址,在这个虚拟机当中是可以准确知道的。但是执行效率来讲相对是比较差的。(热点代码的概念就是,程序中反复被执行的代码)热点代码被执行下来之后,会被编译成本地指令缓存起来,下次执行就不需要在进行编译了,这是它高效的原因。编译成机器码的时候也是要花时间的,每一行都进行编译会消耗时间,也就会暂停时间过长,导致程序启动的时候会有一段时间卡顿。只提供解释器不提供及时编译器的话在功能上是没有问题的,都可以将字节码中的指令按照顺序一行一行的解释执行,原创 2023-09-12 23:54:27 · 18798 阅读 · 14 评论 -
深入理解JVM虚拟机第三篇:JVM的指令集架构模型和JVM的生命周期
详细介绍了JVM的指令集架构模型概念、分类、优缺点,以及JVM的生命周期,包含虚拟机的启动、虚拟机的运行和虚拟机的终止,并且提供了手动关闭虚拟机的代码。代码入口在System类中原创 2023-09-12 08:57:47 · 18900 阅读 · 9 评论 -
深入理解JVM虚拟机第二篇:虚拟机概念和JVM整体架构以及字节码的执行路线
本文介绍了虚拟机的概念,以及虚拟机在软件与操作系统和硬件之间的地位,还介绍了JVM的整体架构和代码的简单的执行过程。原创 2023-09-11 23:12:39 · 18893 阅读 · 1 评论 -
深入理解JVM虚拟机第一篇:Java跨平台和字节码以及多语言混合编程
本位描述了Java的跨平台和JVM的跨平台的作用,Java语言的字节码的概念多语言混合编程应用到JVM虚拟机以及Java发展的重大事件。原创 2023-09-11 22:10:15 · 18811 阅读 · 1 评论