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

如何做美女图片网站my77728域名查询

如何做美女图片网站,my77728域名查询,网站开发标准合同,苏州门户网站有哪些类加载过程 是Java虚拟机(JVM)将字节码文件(.class文件)加载到内存中,并转换为运行时数据结构的过程。这个过程可以分为多个步骤,每个步骤都有其特定的任务和目的。根据你提供的信息,以下是类加…

在这里插入图片描述

类加载过程

是Java虚拟机(JVM)将字节码文件(.class文件)加载到内存中,并转换为运行时数据结构的过程。这个过程可以分为多个步骤,每个步骤都有其特定的任务和目的。根据你提供的信息,以下是类加载过程的三个主要步骤:

1. 加载

在这个阶段,类加载器通过一个类的全限定名来获取定义此类的二进制字节流。这一步骤包括以下几个子步骤:

  • 定位字节源:类加载器需要找到包含类定义的字节码文件。这些字节码文件可能存在于本地文件系统、网络资源、数据库或者其他任何形式的存储介质中。
  • 读取字节流:一旦找到了字节码文件,类加载器会读取该文件的内容,将其转化为字节流。
  • 创建类对象:类加载器使用读取到的字节流来创建一个java.lang.Class对象,这个对象代表了正在被加载的类。

2. 链接

链接阶段的主要任务是将字节流所代表的静态存储结构转化为方法区的运行时数据结构。这个阶段又可以细分为以下三个子阶段:

  • 验证:确保字节流中的信息符合Java虚拟机规范的要求,不会对虚拟机造成危害。验证包括字节码验证、符号引用验证等多个方面。
  • 准备:为类的静态变量分配内存,并设置默认初始值。例如,对于int类型的静态变量,默认值为0;对于引用类型,默认值为null。
  • 解析:将类的常量池内的符号引用替换为直接引用。符号引用是以字符串形式存在的,而直接引用可以直接指向目标。

3. 初始化

在这里插入图片描述

在初始化阶段,JVM会执行类构造器<clinit>()方法,这个方法是由编译器自动收集类中的所有类变量的赋值动作和静态语句块(static{}块,中的语句合并产生的。初始化阶段是执行类中定义的Java程序代码(或者说是字节码)的阶段,前面的类加载过程中,除了在加载阶段用户应用程序可以通过自定义类加载器参与之外,其余动作完全由JVM主导和控制。到了初始化阶段,才真正开始执行类中编写的Java程序代码(或者说是字节码)。

类加载类型

在这里插入图片描述

在这里插入图片描述

1. 类加载器类型

  • Bootstrap Class Loader
    由JVM内部实现(如C++),负责加载核心类库(如rt.jar)。它是所有类加载器的根基,但没有对应的Java对象,因此在代码中不可直接访问。
  • Extension Class Loader
    加载JRE扩展目录(如jre/lib/ext)中的类,父加载器为Bootstrap(但通常以null表示)。
  • System/Application Class Loader
    加载应用程序类路径(-classpath-cp)的类,父加载器是Extension。
  • User-Defined Class Loader
    用户自定义的类加载器(需继承ClassLoader类),可灵活指定其父加载器(默认父加载器是System)。

2. 包含关系

  • 不是继承关系:类加载器之间的层次通过组合实现(每个加载器持有父加载器的引用),而非类的继承。例如,ClassLoader类中有一个parent字段指向父加载器。
  • 委派模型:加载类时,子加载器会先委派父加载器尝试加载,父加载器失败后子加载器才自行加载。这种“双亲委派”机制确保了核心类的安全性。

3. **图示关系

Bootstrap Class Loader↑(隐含引用)
Extension Class Loader↑(parent字段引用)
System Class Loader↑(parent字段引用)
User-Defined Class Loader(可多个,各自独立)

Java类加载器之间的关系通过委派模型协作,形成逻辑上的层次结构,但并非通过类继承实现,而是通过对象间的引用组合(即包含关系)。具体如下:

// System Class Loader 的 parent 是 Extension Class Loader
ClassLoader systemLoader = ClassLoader.getSystemClassLoader();
ClassLoader parent = systemLoader.getParent(); // 父加载器是 Extension

4. Optional的说明

  • Optional可能指Java 9+模块化系统中的类加载器(如PlatformClassLoader),或特定场景下的可选加载器(如OSGi、Tomcat的WebApp类加载器)。它们与上述加载器协作,但遵循相同的委派逻辑。

总结

类加载器通过委派链形成包含关系,每个加载器通过parent字段引用父加载器,而非继承。这种设计保障了核心类库的隔离性与安全性,同时允许用户自定义类加载逻辑。

http://www.dtcms.com/wzjs/515841.html

相关文章:

  • 门户网站制作培训心得体会2000字
  • 网站建设征求意见的通知如何自制网站
  • 上海建设网站公司在线培训平台
  • 什么网站做企业邮箱服务搜索优化seo
  • 网站建设公司怎么选优化网站怎么真实点击
  • 公司黄页企业名录在哪里查北京seo顾问外包
  • 好看的网站都找谁做的seo网络推广知识
  • 长沙人才招聘网站sem模型
  • 西安市住房和城乡建设局官方网站深圳十大网络推广公司排名
  • 科技成果转化平台seo自然排名关键词来源的优缺点
  • 青岛需要做网站的公司如何让自己的网站排名靠前
  • 好看的创意网站设计百度网址安全中心怎么关闭
  • 成品网站建设咨询短视频seo询盘获客系统
  • 卡盟网站制作教程青岛seo关键词
  • 网站百度搜索情况和反链接优化建议seo联盟
  • 建设营销型网站不足之处收录
  • wordpress get_the_category_listseo案例分析及解析
  • mugeda做网站江苏关键词推广seo
  • 做外贸是自建网站好还是b2b好杭州seo靠谱
  • ps网站背景图片怎么做自动app优化官网
  • 网站建设 落地页安卓优化大师手机版下载
  • 电子商务网站开发的视频市场营销策划案例经典大全
  • 做网站前端用什么软件好seo关键词有话要多少钱
  • 家具定制东莞网站建设十大软件免费下载网站排行榜
  • 别人做的网站怎么安全放在我的公司站长工具在线免费
  • 温州手机网站建设品牌推广的概念
  • 南昌企业建站系统模板免费的推广平台
  • 网站ui设计是什么百度推广后台登录首页
  • 商务网站建设模块seo综合查询接口
  • 签证中心网站建设企业网站首页