`
tianhen
  • 浏览: 911 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JVM,每天深入一点(1)

阅读更多

1、ClassLoader的层级结构。双亲-孩子结构。

启动类ClassLoader <- 系统类ClassLoader <- 自定义ClassLoader。
ClassLoader加载class时首先请求其双亲ClassLoader加载,递归至双亲孩子链顶层即启动类ClassLoader,如果双亲ClassLoader已经加载了该类,则自己不会再加载类,只有当双亲ClassLoader没有加载该类时,才会自己去加载该类。
 
2、class文件的校验
虚拟机会校验加载的class文件,分为四个阶段:
(1)class文件的结构检查。保证class文件是规定的class文件格式。
所有的class文件都以0xCAFEBABE开头,同时还要检查class的主版本号和次版本号,确定是否在JVM支持的范围之内。校验class的文件长度等。
(2)class文件语义检查。确保语法的正确性。java编译器在将将.java文件编译为.class文件时也会做同样的事情,但JVM并不知道该文件是否是有没有缺陷的java编译器编译而来的。
(3)字节码验证。字节码流实际上就是类里面的方法。校验指令序列是否安全。
字节码流代表java方法,每个线程执行的时候,jvm会为其分配一个java栈,该线程中每个方法调用都会产生一个该方法的一个栈帧,栈帧中存放方法栈和操作数栈。操作数栈存储的是方法计算过程中的中间结果,方法栈中存放的是方法的局部变量。
(4) 符号引用验证。验证class文件到其他的class文件的引用是正确的。
由于大多数JVM实现采用延迟加载的策略,因此第四趟扫描有可能是在第三趟扫描之后,字节码真正执行的时候进行的。

 

分享到:
评论

相关推荐

    深入理解JVM&G1; GC

    《深入理解JVM & G1 GC》一书深入剖析了Java虚拟机(JVM)的工作原理,特别是针对垃圾收集器(GC)中的G1(Garbage-First)算法进行了详尽的探讨。JVM是Java程序运行的基础,它负责解析、编译、执行Java代码,并管理...

    JVM 完整深入解析.pdf

    Java虚拟机(JVM)是运行Java程序的关键平台,其内部结构和内存管理机制非常复杂且精细。它将内存分为若干个不同的数据区域,以便管理Java程序的运行时数据。下面将详细介绍JVM中的运行时数据区,以及Java内存模型...

    深入理解JVM&G1GC

    资源名称:深入理解JVM & G1 GC内容简介:G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。《深入理解JVM & G1 GC》主要为学习Java语言的...

    深入理解jvm虚拟机

    1. JVM架构组成:JVM主要由类加载器(Class Loader)、运行时数据区(Runtime Data Area)、执行引擎(Execution Engine)以及本地接口(Native Interface)等部分组成。了解这些组件各自的作用和工作方式,是理解...

    深入理解JVM & G1 GC

    《深入理解JVM & G1 GC》这篇文章和相关压缩包文件主要聚焦于Java虚拟机(JVM)的内存管理,特别是垃圾收集器(GC)的优化,特别是G1(Garbage-First)垃圾收集器的深度解析。下面将详细阐述JVM、GC的基本概念,...

    深入理解JVM.rar

    每个使用Java的开发者都知道Java字节码是在JRE中运行,而JVM则是JRE中的核心组成部分,承担分析和执行Java字节码的工作,而Java程序员通常并不需要深入了解JVM运行情况就可以开发出大型应用和类库。尽管如此,如果你...

    JVM规范与深入理解

    《JVM规范与深入理解》这个主题涵盖了Java虚拟机(Java Virtual Machine)的全面解析,旨在帮助开发者深入了解JVM的工作原理及其对程序性能的影响。在这个主题中,我们主要关注两个核心资源:周志明的《深入理解Java...

    [jvm]深入JVM(一):从

    [jvm]深入JVM(一):从"abc"=="abc"看java的连接过程收藏 一般说来,我不关注java底层的东西,这次是一个朋友问到了,注意不光是 System.out.println("abc"=="abc");返回true, System.out.println(("a"+"b"+"c")....

    深入解析jvm深入解析jvm

    深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm深入解析jvm

    深入JVM内核—原理、诊断与优化

    《深入JVM内核—原理、诊断与优化》是一份深度探索Java虚拟机(JVM)的视频教程,旨在帮助开发者全面理解JVM的工作机制,掌握性能诊断技巧,并能进行有效的优化。本教程覆盖了从基础到高级的JVM主题,不仅适用于Java...

    JVM 深入学习教程深入分析JVM教程!jvm 内存原型,优化等等

    JVM 深入分析,简介,学习,面试必备,很深入,全方位介绍

    深入理解Java虚拟机JVM高级特性与最佳实践1

    《深入理解Java虚拟机JVM高级特性与最佳实践》是一本专注于Java开发人员提升技术水平的著作,由周志明撰写。这本书旨在填补Java技术体系中关于Java虚拟机(JVM)知识的空白,帮助读者深入理解JVM的工作原理及其对...

    深入jvm 内核-原理,诊断于优化视频教程

    ### 深入JVM内核:原理、诊断与优化 #### 一、JVM基础知识 **1.1 JVM概念** Java虚拟机(Java Virtual Machine,简称JVM)是一种用于执行Java字节码的虚拟机。它为Java程序提供了一个运行环境,能够独立于硬件平台...

    深入JVM内核—原理、诊断与优化视频教程-3.常用JVM配置参数

    深入理解JVM的内核原理、诊断技巧以及优化方法对于提升应用性能至关重要。本教程——“深入JVM内核—原理、诊断与优化视频教程”,将重点讲解这些关键点,帮助开发者提升技术水平,更好地解决实际问题。 首先,我们...

    深入jvm虚拟机

    本书讲述了Java虚拟机一运行 所有Java程序的抽象计算机,还讲了几种与虚拟机密切相关的核心Java API。本书通过分析讲解、可运行的示例、参考资料和applet (它作为文中所述概念的交互式例示),提供了Java技术的深人...

    inside JVM(深入JAVA虚拟机光盘内容)

    1. 类加载机制:JVM采用双亲委派模型进行类加载,当一个类被请求加载时,首先会询问其父类加载器,只有当父类加载器无法完成加载时,才会尝试自己加载。这种机制避免了类的重复加载,同时也保证了核心类库的加载安全...

    深入理解JVM.

    深入理解JVM,首先要明白Java技术的组成部分,包括Java编程语言、Java类文件格式、Java虚拟机(JVM)和Java应用程序接口(Java API)。这些组件共同构成了Java平台,使得Java程序能够实现跨平台运行。 Java虚拟机是...

    JAVA应用JVM原理及参数调优深入讲解视频.zip

    JAVA应用JVM原理及参数调优深入讲解视频.1 JAVA应用JVM原理及参数调优深入讲解视频.2 JAVA应用JVM原理及参数调优深入讲解视频.3 JAVA应用JVM原理及参数调优深入讲解视频.4 JAVA应用JVM原理及参数调优深入讲解视频.5 ...

    [转载]深入理解JVM

    ### 深入理解JVM #### 一、Java技术与Java虚拟机 Java不仅仅是一种编程语言,更是一项综合性的技术。它主要包括四个关键组成部分: 1. **Java编程语言**:这是一种面向对象的编程语言,提供了丰富的类库支持,...

Global site tag (gtag.js) - Google Analytics