之前在介绍JVM内存模型的时候(参看:了解JVM内存模型),提到了在运行时数据区之前,有个ClassLoader,这个就是类加载器。用以把Class文件中的描述信息加载到内存中运行和使用。以下是《深入理解Java虚拟机第二版》对类加载器机制的定义原文:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载
分类:
其他好文 时间:
2020-08-15 22:21:10
阅读次数:
62
#前言 学习JVM类加载器,ClassLoader这个类加载器的核心类是必须要重视的。 #ClassLoader源码文档 Notes:下方蓝色文字是自己的翻译(如果有问题请指正)。黑色文字是源文档。 public abstract class ClassLoader extends Object 类 ...
分类:
编程语言 时间:
2020-08-02 16:15:22
阅读次数:
100
写在前面上一篇文章并发Bug之源有三,请睁大眼睛看清它们谈到了可见性/原子性/有序性三个问题,这些问题通常违背我们的直觉和思考模式,也就导致了很多并发Bug为了解决CPU,内存,IO的短板,增加了缓存,但这导致了可见性问题编译器/处理器擅自优化(Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行),导致有序性问题初衷是好
分类:
移动开发 时间:
2020-08-02 10:22:41
阅读次数:
107
JVM(Java虚拟机)算是面试必问的问题的了,而但凡问JVM一定会问的第一个问题就是:讲一讲JVM的组成?那本文就注重讲一下JVM的组成。首先来说JVM的组成分为,整体组成部分和运行时数据区组成部分,一般开发者关注的和面试官问的都是后者,但本文会详细讲解以上两个组成部分。一、JVM整体组成JVM整体组成可分为以下四个部分:类加载器(ClassLoader)运行时数据区(RuntimeDataAr
分类:
其他好文 时间:
2020-08-02 10:15:02
阅读次数:
65
JVM的生命周期 虚拟机的启动 Java 虚拟机的启动是通过引导类加载器(BootstrapClassLoader )创建一个初始类(initial class)来完成的这个类是虚拟机的具体实现来指定的。 虚拟机的执行 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序 程序开始执行时它 ...
分类:
其他好文 时间:
2020-07-29 15:36:26
阅读次数:
92
这里还有个非常有意思的问题没有展开说明,那就是CanalStarter里面的配置加载,通过ExtensionLoader类的相关实现,如何通过不同的类加载器,实现SPI,后面再分析吧。
分类:
其他好文 时间:
2020-07-28 00:09:59
阅读次数:
90
类加载子系统类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责class文件的加载,至于它是否可以运行,则由ExecutionEngine决定。类加载过程:加载->验证->准备->解析->初始化加载:通过一个类的全限定名获取定义此类的二进制字节流将这个字节流所代表的静态存储结构转
分类:
其他好文 时间:
2020-07-26 11:21:14
阅读次数:
95
1:jvm遇到new :首先判断是否别类加载器加载,然后class 加载到 jvm内存数据区 类加载 检查加载:检查这个指令参数是否可以在常量池中有对应类的符号引用,并检查是否被加载/解析/初始化 分配内存 -》指针碰撞 (适合内存规整)/ 空闲列表(适合内存不规整) 并发情况下 cas加失败重试/ ...
分类:
其他好文 时间:
2020-07-23 15:53:57
阅读次数:
68
本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等前言之前去面试的时候面试官问了我关于关于JVM性能调优的问题,由于自己之前公司的项目里自己没有接触到JVM性能调优的相关问题(感觉这些都是公司架构师考虑的问题),所有面试官问的时候自己一脸懵逼,所有最后的结果当然是凉凉。。,于是,为了查漏补缺,就去学习了一下JVM的相关知识,希望能帮助到大家。正文在学习任何一项新的知识之前,我
分类:
其他好文 时间:
2020-07-23 15:46:59
阅读次数:
67
1、概念 类加载阶段,通过一个类的全限定名来获取描述该类的二进制流文件,实现这个动作的代码就是类加载器。 2、类与类加载器 对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性。每个类加载器都有独立的类名称空间。通俗的说如果要比较两个类是否相同,必须在同一类加 ...
分类:
其他好文 时间:
2020-07-21 09:52:22
阅读次数:
60