随笔分类 - Java / JVM虚拟机
摘要:运行时数据区概述 内存是非常重要的系统资源,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM高效稳定的运行。不同的JVM对内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来讨论下经典的JVM内存布局。 Java虚拟机定
阅读全文
摘要:关于类的主动使用和被动使用 在JVM当中表示两个class对象是否为同一个类存在的两个必要条件: 类的完整类名必须一致,包括包名。 加载这个类的ClassLoader必须相同。 换句话说,在JVM当中,即使这两个类对象(class对象)来源同一个class文件,被同一个虚拟机加载,但只要加载它们的C
阅读全文
摘要:双亲委派机制 Java虚拟机对Class文件采用的是按需加载的方式,也就是说当需要使用该类的时候才会将它的class文件加载到内存生成Class对象,而且加载某个类的Class文件时,Java虚拟机采用的是双亲委派模式,即把请求交给父类处理,它是一种任务委派模式。 工作原理 如果一个类加载器收到了类
阅读全文
摘要:类加载子系统Class Loader Java架构图: 2.1 类加载器的作用 类加载器负责从文件系统或网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader只负责class文件加载,至于它是否可以运行,则由执行引擎(Execution Engine)决定。 加
阅读全文
摘要:1_JVM整体结构 HotSpot VM是目前市面上高性能虚拟机的代表作之一,JVM整体结构如下所示: Java语言跨平台性: Java虚拟机输入的指令基本上是一种基于栈的指令级架构,另外一种指令集则是基于寄存器的指令级架构。这两种架构之间的区别如下: 基于栈式架构特点 设计和实现更简单,适用于资源
阅读全文