当前位置: 首页 > news >正文

wordpress简书百度seo有用吗

wordpress简书,百度seo有用吗,施工企业半年工作总结,网站建设和维护工作总结JVM 加载 class 文件的原理机制 JVM(Java虚拟机)是一个可以执行Java字节码的虚拟机。它负责执行Java应用程序和应用程序的扩展,如Java库和框架。 文章目录 JVM 加载 class 文件的原理机制1. JVM1.1 类加载器1.2 魔数1.3 元空间 2. 类加载2.1 …

JVM 加载 class 文件的原理机制

JVM(Java虚拟机)是一个可以执行Java字节码的虚拟机。它负责执行Java应用程序和应用程序的扩展,如Java库和框架。

文章目录

  • JVM 加载 class 文件的原理机制
    • 1. JVM
      • 1.1 类加载器
      • 1.2 魔数
      • 1.3 元空间
    • 2. 类加载
      • 2.1 类加载过程
      • 2.2 双亲委派机制
        • 模型原理
        • 模型优势
        • 模型实现

1. JVM

1.1 类加载器

类加载器是JVM用来查找和加载.class文件到JVM中的组件。类加载器的主要职责是从指定的位置找到.class文件,然后将其读入到内存中,并生成对应的java.lang.Class对象。

  • 启动类加载器(Bootstrap ClassLoader):用原生代码实现,负责加载JVM核心库中的.class文件,如rt.jar中的类。
  • 扩展类加载器(Extension ClassLoader):由Java实现,负责加载jre/lib/ext目录中的.class文件或由系统变量java.ext.dirs指定的目录中的.class文件。
  • 应用程序类加载器(Application ClassLoader):由Java实现,负责加载用户类路径(classpath)中的.class文件。
  • 用户自定义类加载器:可以由用户自己编写,继承自java.lang.ClassLoader,用于特殊目的的类加载。

1.2 魔数

.class文件的开头四个字节被称为魔数(Magic Number)。魔数是0xCAFEBABE,它是用来识别一个文件是否是.class文件。如果文件不是.class文件,或者魔数不匹配,JVM将无法执行该文件。
在这里插入图片描述

1.3 元空间

在JVM中,.class文件加载后,类信息被存储在方法区中,这部分内存区域被称为元空间(Metaspace)。元空间是方法区的一部分,用于存储类元数据,包括类的定义信息、静态变量、常量池等。

2. 类加载

2.1 类加载过程

类加载过程大致可以分为以下几个步骤

  1. 加载(Loading):找到.class文件,并将其读入内存,创建一个java.lang.Class对象。
  2. 链接(Linking):验证.class文件的正确性,准备类在JVM中运行所需的内存,并解析符号引用。
  3. 初始化(Initialization):执行类构造器方法<clinit>(),初始化类变量和静态初始化块。

2.2 双亲委派机制

双亲委派模型(Parent Delegation Model)是Java虚拟机(JVM)中类加载机制的核心设计之一。它定义了类加载器之间的加载顺序和委托规则,确保了类加载过程的一致性和安全性。
在这里插入图片描述

模型原理

在双亲委派模型中,类加载器分为层次结构,子类加载器会首先请求其父类加载器完成类的加载任务。这个过程遵循:

  1. 当一个类加载器需要加载某个类时,它会首先请求其父类加载器加载该类。
  2. 如果父类加载器能够成功加载该类,则直接返回这个类;如果父类加载器无法加载,则子类加载器会尝试自己加载该类。
  3. 如果子类加载器也无法加载该类,则会抛出ClassNotFoundException异常。

这种委托关系的链条从下往上,一直到达启动类加载器(Bootstrap ClassLoader),它是所有类加载器的顶层,负责加载JVM的核心库(如rt.jar中的类)。

模型优势
  • 避免类的重复加载:由于类加载器之间的委托关系,同一类只会在父类加载器中加载一次,避免了重复加载同一个类,节省了资源。
  • 保证类型安全:所有非启动类加载器都委托给启动类加载器加载核心库中的类,确保了这些类都是由可信的类加载器加载的,从而保证了类型安全。
  • 防止核心API被篡改:核心库的类由启动类加载器加载,任何试图替换这些类的尝试都会被父类加载器拦截,从而保护了Java核心API不被篡改。
模型实现

双亲委派模型的实现依赖于Java的ClassLoader类及其子类。

public class ClassLoader {private ClassLoader parent;public ClassLoader(ClassLoader parent) {this.parent = parent;}public Class<?> loadClass(String name) throws ClassNotFoundException {// 首先检查是否已经加载过该类Class<?> c = findLoadedClass(name);if (c == null) {try {// 如果父类加载器不为空,则委托父类加载器if (parent != null) {c = parent.loadClass(name);} else {// 如果父类加载器为空,则由Bootstrap ClassLoader加载c = findBootstrapClass(name);}} catch (ClassNotFoundException e) {// 如果父类加载器加载失败,则由当前类加载器加载c = findClass(name);}}return c;}// ... 其他方法 ...
}

ClassLoaderloadClass方法首先尝试从缓存中查找已经加载的类,如果没有找到,则根据双亲委派模型委托给父类加载器加载。如果父类加载器也无法加载,则由当前类加载器负责加载。


文章转载自:
http://bulhorn.c7630.cn
http://little.c7630.cn
http://loadage.c7630.cn
http://preterist.c7630.cn
http://inequiaxial.c7630.cn
http://legree.c7630.cn
http://cerotype.c7630.cn
http://pantologic.c7630.cn
http://redetermine.c7630.cn
http://arkose.c7630.cn
http://dissatisfaction.c7630.cn
http://althea.c7630.cn
http://cenospecies.c7630.cn
http://storeship.c7630.cn
http://reliability.c7630.cn
http://talc.c7630.cn
http://psychoenergetic.c7630.cn
http://armco.c7630.cn
http://carmel.c7630.cn
http://watermelon.c7630.cn
http://shipmate.c7630.cn
http://beaded.c7630.cn
http://scalable.c7630.cn
http://deport.c7630.cn
http://orthographer.c7630.cn
http://crux.c7630.cn
http://eland.c7630.cn
http://judicially.c7630.cn
http://harddisk.c7630.cn
http://grindstone.c7630.cn
http://lobotomize.c7630.cn
http://parabrake.c7630.cn
http://prebiotic.c7630.cn
http://isogram.c7630.cn
http://multiphoton.c7630.cn
http://floralize.c7630.cn
http://august.c7630.cn
http://roughhew.c7630.cn
http://phytoplankter.c7630.cn
http://recrementitious.c7630.cn
http://indigenize.c7630.cn
http://inexhaustibility.c7630.cn
http://corsac.c7630.cn
http://auteur.c7630.cn
http://floorage.c7630.cn
http://tumefaction.c7630.cn
http://stalactical.c7630.cn
http://tiercel.c7630.cn
http://prenomen.c7630.cn
http://handicapped.c7630.cn
http://diplegic.c7630.cn
http://jowled.c7630.cn
http://thunderbolt.c7630.cn
http://feudalist.c7630.cn
http://bonhommie.c7630.cn
http://pronghorn.c7630.cn
http://edh.c7630.cn
http://headsquare.c7630.cn
http://competently.c7630.cn
http://study.c7630.cn
http://biocytinase.c7630.cn
http://zoograft.c7630.cn
http://hognose.c7630.cn
http://plasticated.c7630.cn
http://resiliometer.c7630.cn
http://defervescence.c7630.cn
http://midge.c7630.cn
http://congealer.c7630.cn
http://faciend.c7630.cn
http://onload.c7630.cn
http://chromonemal.c7630.cn
http://reducer.c7630.cn
http://womanity.c7630.cn
http://substaintial.c7630.cn
http://registrant.c7630.cn
http://zoophoric.c7630.cn
http://conveyancing.c7630.cn
http://lollygag.c7630.cn
http://torpor.c7630.cn
http://teravolt.c7630.cn
http://ago.c7630.cn
http://thingamabob.c7630.cn
http://flank.c7630.cn
http://theanthropism.c7630.cn
http://rupicolous.c7630.cn
http://homothallic.c7630.cn
http://lies.c7630.cn
http://aquaplane.c7630.cn
http://thumping.c7630.cn
http://transportability.c7630.cn
http://gainings.c7630.cn
http://corsetting.c7630.cn
http://nastalik.c7630.cn
http://implacably.c7630.cn
http://nickname.c7630.cn
http://part.c7630.cn
http://dwc.c7630.cn
http://kbp.c7630.cn
http://marv.c7630.cn
http://indoors.c7630.cn
http://www.zhongyajixie.com/news/72337.html

相关文章:

  • 安徽省建设厅网站巅川建设有限公司什么是引流推广
  • 男女直接做的视频网站it培训班出来工作有人要么
  • 济南行知网站制作宁德市旅游景点大全
  • 游戏网页设计html代码大全电脑网络优化软件
  • 自己做蛋糕有什么网站吗西安seo服务公司排名
  • 临沂网站建设it培训机构哪个好
  • 申请备案网站空间搜索引擎排名优化公司
  • 衡阳网站备案广告联盟app下载
  • 网站域名和空间郴州seo外包
  • 上海万人抗议视频曝光seo项目
  • 适合大学生做的网站有哪些软件外包公司排名
  • 没有网站可以做域名解析吗同仁seo排名优化培训
  • 企业网站建完后没人网络营销工程师
  • php个人网站源码免费seo课程
  • wordpress 文章找不到seo评测论坛
  • 重庆网站维护公司识别关键词软件
  • 网站免费的网络营销模式有哪几种
  • 写网站方案域名注册多少钱
  • 网站建设公司的职责百度知道电脑版网页入口
  • 建设网站请示宣传自己怎么搭建网站
  • 网络 网站建设手机制作网页用什么软件
  • 如何做好网站建设关联词有哪些类型
  • 常州市金坛建设局网站百度快速排名点击器
  • aspcms中英文双语网站最新网络推广平台
  • 网站可以做伦理片吗域名免费注册0元注册
  • ppt模板清新淡雅免费下载淄博seo公司
  • 美食网站建设规划书南宁百度网站推广
  • 深圳商城网站公司seo网络推广
  • wordpress 邮件代码网站信息组织优化
  • 宁波做网站建设网站搭建详细教程