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

旅游网站开发项目策划书济南网站建设老威

旅游网站开发项目策划书,济南网站建设老威,电子商务网站开发毕业论文,网站 qq在线客服修改JVM:双亲委派机制 1. 例子2. 类加载器总结3. 类加载过程4. 双亲委派模型的执行流程:5. 双亲委派模型的好处 1. 例子 Java运行时环境有一个java.lang包,里面有一个ClassLoader类 我们自定义一个String类在java.lang包下,下面的…

JVM:双亲委派机制

  • 1. 例子
  • 2. 类加载器总结
  • 3. 类加载过程
  • 4. 双亲委派模型的执行流程:
  • 5. 双亲委派模型的好处

1. 例子

Java运行时环境有一个java.lang包,里面有一个ClassLoader
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们自定义一个String类在java.lang包下,下面的main方法报错。原因是: 根据双亲委派机制,会向上找先是找到了应用程序加载器(appClassLoader) ,然后向上找扩展类加载器(ExtClassLoader),最后找根类加载器(Boot Strap Loader),发现有String执行根加载器的也就是rt.jar包中的。 其实就是上级的加载器有的就执行上级的
在这里插入图片描述

2. 类加载器总结

JVM 中内置了三个重要的 ClassLoader:

  1. BootstrapClassLoader(启动类加载器) :最顶层的加载类,由 C++实现,通常表示为 null,并且没有父级,主要用来加载 JDK 内部的核心类库( %JAVA_HOME%/lib目录下的 rt.jar 、resources.jar 、charsets.jar等 jar 包和类)以及被 -Xbootclasspath参数指定的路径下的所有类。
  2. ExtensionClassLoader(扩展类加载器):主要负责加载 %JRE_HOME%/lib/ext 目录下的 jar 包和类以及被 java.ext.dirs 系统变量所指定的路径下的所有类。
  3. AppClassLoader(应用程序类加载器) :面向我们用户的加载器,负责加载当前应用 classpath 下的所有 jar 包和类。

简单来说,类加载器的主要作用就是加载 Java 类的字节码( .class 文件)到 JVM 中(在内存中生成一个代表该类的 Class 对象)。 字节码可以是 Java 源程序(.java文件)经过 javac 编译得来,也可以是通过工具动态生成或者通过网络下载得来。

3. 类加载过程

  • 类加载过程:加载->连接->初始化。
  • 连接过程又可分为三步:验证->准备->解析。

在这里插入图片描述

加载是类加载过程的第一步,主要完成下面 3 件事情:

  1. 通过全类名获取定义此类的二进制字节流
  2. 将字节流所代表的静态存储结构转换为方法区的运行时数据结构
  3. 在内存中生成一个代表该类的 Class 对象,作为方法区这些数据的访问入口

4. 双亲委派模型的执行流程:

  • 在类加载的时候,系统会首先判断当前类是否被加载过。已经被加载的类会直接返回,否则才会尝试加载(每个父类加载器都会走一遍这个流程)。
  • 类加载器在进行类加载的时候,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成(调用父加载器 loadClass()方法来加载类)。这样的话,所有的请求最终都会传送到顶层的启动类加载器 BootstrapClassLoader 中。
  • 只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载(调用自己的 findClass() 方法来加载类)。
    在这里插入图片描述
    在这里插入图片描述

5. 双亲委派模型的好处

双亲委派模型保证了 Java 程序的稳定运行,可以避免类的重复加载(JVM 区分不同类的方式不仅仅根据类名,相同的类文件被不同的类加载器加载产生的是两个不同的类),也保证了 Java 的核心 API 不被篡改。

在这里插入图片描述

如果没有使用双亲委派模型,而是每个类加载器加载自己的话就会出现一些问题,比如我们编写一个称为 java.lang.Object 类的话,那么程序运行的时候,系统就会出现两个不同的 Object 类。双亲委派模型可以保证加载的是 JRE 里的那个 Object 类,而不是你写的 Object 类。这是因为 AppClassLoader 在加载你的 Object 类时,会委托给 ExtClassLoader 去加载,而ExtClassLoader 又会委托给 BootstrapClassLoader,BootstrapClassLoader 发现自己已经加载过了 Object 类,会直接返回,不会去加载你写的 Object 类。

http://www.yidumall.com/news/10288.html

相关文章:

  • 毕设做网站具体步骤百度下载电脑版
  • 如何搭建电影网站新乡seo推广
  • 企业网站的网址通常包括短视频代运营方案策划书
  • 新疆建设局网站找网络公司做推广费用
  • 所有网站大全游戏推广是干什么的
  • 做废铝的关注哪个网站好网络营销的十大特点
  • 免费推广网站哪家好制作网站的步骤和过程
  • 卸载mac wordpressseo效果检测步骤
  • 网络公司网站样本优化什么
  • 如何申请网站新手如何找cps推广渠道
  • 东莞企业网站建设报价北京疫情最新数据
  • 盐山网站建设价格聊城seo整站优化报价
  • 怎么建设个人网站教程广告推广语
  • 网站建设一般要提供什么内容今天微博热搜前十名
  • 一个网站怎么做app电商运营主要工作内容
  • 福州网站建设自助建站百度查询关键词排名工具
  • 网站建站网站jp586 vip建网络平台要多少费用
  • 草包做视频网站做一个简单网页
  • 快站优惠券长沙营销推广
  • 排名好的锦州网站建设seo查询官网
  • 建设银行高校缴费网站搜索推广平台有哪些
  • 高端网站建设哪里好流量宝官网
  • 盾思途旅游网站建设seo怎么发文章 seo发布工具
  • 做本地地旅游网站江门网站优化公司
  • 品牌网站设计流程亚马逊关键词排名查询工具
  • 怎么做flash网站网站优化推广平台
  • 哪个网站可以查建筑公司资质谷歌搜索优化seo
  • 专业定制网站建设代理搜索引擎优化需要多少钱
  • 淘宝客单品网站源码怎样精选关键词进行网络搜索
  • wordpress 5.0.3龙岩seo