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

室内设计软件大全网站网络推广员岗位职责

室内设计软件大全网站,网络推广员岗位职责,桂林生活网二手,做网站需要数据储存么一、类加载机制 1.1类加载过程 类加载是Java虚拟机将类的字节码数据从磁盘或网络中读入内存,并转换成在JVM中可以被执行的Java类型的过程。类加载器是Java虚拟机的重要组成部分,负责加载和解析类的字节码,将其转换成Java虚拟机中的类对象&am…

一、类加载机制

1.1类加载过程

类加载是Java虚拟机将类的字节码数据从磁盘或网络中读入内存,并转换成在JVM中可以被执行的Java类型的过程。类加载器是Java虚拟机的重要组成部分,负责加载和解析类的字节码,将其转换成Java虚拟机中的类对象,生成加载的类的二进制类数据并存储在方法区中。

类加载过程可以分为以下五个步骤:

1. 加载(Loading):通过类加载器将.class文件字节码读入内存,并生成对应的Class对象,其中包括编译器编译后的代码、静态常量等信息。

2. 验证(Verification):检验字节码文件是否符合Java虚拟机规范,包括是否有正确的魔数、版本信息、常量池中的常量的数据类型是否正确、操作码是否合法等。

3. 准备(Preparation):在内存中为类的静态变量分配内存并赋初始值(数值类型默认为0,对象类型默认为null)。这个过程也包括了给类的静态变量赋予正确的默认值。

4. 解析(Resolution):将类对其他类的引用转换成直接链接,检查类或接口是否在系统中被定义,将符号引用转变为直接引用。

5. 初始化(Initialization):执行类的初始化方法,包括静态变量赋值和静态块调用等操作,即JVM对类进行初始化赋值。如果该类有父类,则按继承层次逐级初始化父类。在执行初始化前,必须保证该类已经完成了加载、验证、准备和解析过程。

 1.2类加载器

类加载器ClassLoader

-负责查找、加载、校验字节码的应用程序

  • java.lang.ClassLoader
  • load(String className)根据名字加载一个类,返回类的实例
  • defineClass((String name,.bytel b,int off,,int len)将一个字节流定义一个类
  • findClass(String name)查找一个类
  • findLoadedClass(String name)在已加载的类中,查找一个类
  • 成员变量ClassLoader paren

Java虚拟机(JVM)中有四个级别的类加载器,分别是:

1. 启动类加载器(Bootstrap ClassLoader):负责加载%JAVA_HOME%/lib目录下的核心类库,如rt.jar等。

2. 扩展类加载器(Extension ClassLoader):负责加载%JAVA_HOME%/lib/ext目录下的扩展类库。

3. 应用程序类加载器(Application ClassLoader):负责加载应用程序classpath下的类。

4. 自定义类加载器(Custom ClassLoader):根据开发者的需要,定制自己的类加载器。

这四个类加载器按照父子关系依次排列,每个类加载器都有自己的加载路径和加载策略。在加载一个类时,它会先委托其父加载器进行加载,如果父加载器无法加载,则由它自己进行加载。如果都无法加载,则会抛出ClassNotFoundException异常。这种父子委托的加载方式被称为“双亲委派模型”。

 1.3双亲委派机制扩展

  • Java严格执行双亲委托机制
  • 类会由最顶层的加载器来加载,如没有,才由下级加载器加载
  • 委托是单向的,确保上层核心的类的正确性
  • 但是上级类加载器所加载的类,无法访问下级类加载器所加载的类
    • 例如,java.lang.String无法访问自定义的一个Test类
    • Java是一个遵循契约设计的程序语言,核心类库提供接口,应用层提供实现
    • 核心类库是BootstrapClassLoader加载
    • 应用层是AppClassLoader加载
    • 典型例子是JDBC和XML Parser等

补充

1.4ServiceLoader

  • 一个服务提供者会在jar包中有META-INF/services目录,里面放一个文件,名字同接口名字。内容的每一行都是接口的一个实现类https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html
  • load方法,可以用当前线程的类加载器来获取某接口的所有实现,当然也都是转为接口类来使用
  • 注意:此服务和ava9模块系统的服务略有差别,但是都能通过ServiceLoader:进行加载

1.5自定义类加载路径


 

自定义加载路径弥补类搜索路径静态的不足,前3个加载的路径都是运行前确定的
Java提供URLClassLoader

  • 程序运行时修改类的加载路径
  • 可从多个来源中加载类 

 1.6自定义类加载器

  • JVM四级类加载器严格遵循从上到下的加载机制
  • 自定义类加载器继承ClassLoader类,可重写loadClass和findClass方法
  • 不同层次的类加载器,加载同名的类,在JVM里面也算两个
http://www.dt0577.cn/news/4586.html

相关文章:

  • 在线客服中心深圳优化服务
  • 申请香港网站吗成都网站关键词推广
  • 做网站维护合同惠州seo收费
  • 个人 网站 备案seo诊断分析在线工具
  • 另外网站是做的IPv4还是IPv6建立网站平台需要多少钱
  • 三亚网站开发公司企业网站首页
  • 企业手机网站建设机构汕头seo网络推广
  • 最好的设计师平台网站网络营销总监岗位职责
  • 南通公司做网站电脑速成班短期电脑培训班
  • 苏州新区做网站手机百度如何发布广告
  • 杭州房产网官方网站线上seo关键词优化软件工具
  • wordpress uploadmaxfilesize企业网站seo贵不贵
  • 免费做公司网站能在百度上搜索的到搜索引擎优化的具体措施
  • 公司网页网站建设苏州网站建设公司排名
  • 高职专业建设管理网站谈谈对seo的理解
  • 十大景观设计网站网站代搭建维护
  • jsp网站访问万维网seo168小视频
  • 保山网站建设报价唐山seo排名优化
  • 招标网址网站大全郑州网站优化软件
  • 龙岩网站设计培训上海网络推广公司排名
  • 杭州做网站找力果百度快照投诉中心人工电话
  • seo教学网站高端网站建设制作
  • h5免费制作网站有哪些新开店铺怎么做推广
  • 网站开发语言的选择免费网站推广软件哪个好
  • 海口顶尖网站建设手机刷网站排名软件
  • 大连开发区天气优化二十条
  • c 如何做网站国际时事新闻最新消息
  • 公司网站二维码怎么做的seo服务是什么意思
  • 网站先做前端还是后端网站排名seo培训
  • 做模型挣钱的网站深圳网站设计