当前位置: 首页 > news >正文 青州市住房和城乡建设局网站推广网站怎么建 news 2025/10/29 18:46:20 青州市住房和城乡建设局网站,推广网站怎么建,水墨风格网站源码,安徽做网站公司哪家好【JVM】类加载器 文章目录 【JVM】类加载器0. 类加载器概述1. 类加载器的分类1.1 启动类加载器1.2 Java中的默认类加载器1.2.1 扩展类加载器1.2.2 应用程序类加载器 2. 双亲委派机制2.1 类的双亲委派机制是什么#xff1f;2.2 打破双亲委派机制2.2.1 自定义类加载器2.2.2 线程…【JVM】类加载器 文章目录 【JVM】类加载器0. 类加载器概述1. 类加载器的分类1.1 启动类加载器1.2 Java中的默认类加载器1.2.1 扩展类加载器1.2.2 应用程序类加载器 2. 双亲委派机制2.1 类的双亲委派机制是什么2.2 打破双亲委派机制2.2.1 自定义类加载器2.2.2 线程上下文类加载器 2.3 OSGi模块化 3. 总结 0. 类加载器概述 类加载器ClassLoader是Java虚拟机提供给应用程序去实现获取类和接口字节码数据的技术。 1. 类加载器的分类 类加载器分为两类 Java代码中实现的类加载器JVM底层源码实现的类加载器 jdk8和8之后版本的类加载器的设计差别较大jdk8及之前的版本中默认的类加载器有如下几种 JVM底层实现(C) 启动类加载器Bootstrap加载Java中最核心的类 Java 扩展类加载器Extension允许扩展Java中比较通用的类应用程序类加载器Application加载应用使用的类 1.1 启动类加载器 **启动类加载器Bootstrap ClassLoader**是由 Hotspot 虚拟机提供的使用C编写的类加载器。默认加载Java安装目录/jre/lib下的类文件比如 rt.jartools.jarresources.jar等。 使用启动类加载器去加载用户jar包有两种方式 将jar包放入 jre/lib 目录下进行扩展 不推荐尽可能不要去更改JDK安装目录中的内容因为就算将jar包放入该目录下也可能由于文件名不匹配的问题导致jar包不会正常的被加载。 使用参数进行扩展 推荐使用 -Xbootclasspath/a:路径/jar包名.jar 进行扩展。 1.2 Java中的默认类加载器 扩展类加载器和应用程序类加载器都说JDK中提供的、使用Java编写的类加载器。它们的源码都位于 sun.misc.Launcher 中是一个静态内部类。继承自 URLClassLoader 可以通过目录或者指定jar包将字节码文件加载到内存中。 1.2.1 扩展类加载器 **扩展类加载器Extension ClassLoader**是jdk中提供的、使用Java编写的类加载器。默认加载Java安装目录 /jre/lib/ext 下的类文件。 通过扩展类加载器去加载用户jar包的方式 放入 jre/lib/ext 下进行扩展。 不推荐尽可能不要去更改jdk安装目录中的内容。 使用参数进行扩展 推荐使用 -Djava.ext.dirsjar包目录 进行扩展这种方式会覆盖掉原始目录随意我们应该用 ;windows或 :macos/linux追加上原始目录。 1.2.2 应用程序类加载器 应用程序类加载器AppClassLoader面向我们用户的加载器负责加载当前应用 classpath 下的所有 jar 包和类。 2. 双亲委派机制 由于JVM中有多个类加载器双亲委派机制的核心是解决一个类到底由谁加载的问题。 双亲委派机制的作用 保证类加载的安全性通过双亲委派机制避免恶意代码替换jdk中的核心类库比如 java.lang.String 确保核心类库的完整性和安全性。避免重复加载双亲委派机制可以避免同一个类被多次加载。 双亲委派机制指的是当一个类加载器接收到加载类的任务时会自底向上查找是否加载过再由顶向下进行加载。 向上查找 向上查找如果已经加载过就直接返回Class对象加载过程结束。这样就能避免一个类重复加载。 向下加载 如果所有父类加载器都无法加载该类则由当前类加载器自己尝试加载。所以看上去是自顶向下尝试。第二次再去加载相同的类仍会向上进行委派如果某个类加载器加载过就会直接返回。 每个Java实现的类加载器中都保存了一个成员变量名为 parent 的类加载器**可以理解为它的上级并不是继承关系。**应用程序类加载器的parent父类加载器是扩展类加载器而扩展类加载器的parent是空因为启动类加载器由C实现无法在Java中获得。 2.1 类的双亲委派机制是什么 类的双亲委派机制是什么 当一个类加载器去加载某个类的时候会自底向上查找是否加载过如果加载过就直接返回Class对象如果一直到最顶层的类加载器都没有加载再自顶向下进行加载。应用程序类加载器的父类加载器是扩展类加载器扩展类加载器的父类加载器是启动类加载器。双亲委派机制的好处 避免恶意代码替换jdk中核心类库确保核心类库的完整性和安全性。避免类被重复加载。 2.2 打破双亲委派机制 打破双亲委派机制的三种方式 自定义类加载器自定义类加载器并且重写 loadClass 方法就可以将双亲委派机制的代码去除。线程上下文类加载器利用上下文类加载器加载类比如JDBC和JNDI等。Osgi框架的类加载器历史上Osgi框架实现了一套新的类加载器机制允许同级之间委托进行类的加载。 2.2.1 自定义类加载器 一个Tomcat程序中可以运行多个Web应用如果这两个应用中出现了相同限定名的类比如Servlet类Tomcat要保证这两个类都能加载并且它们应该是不同的类。如果不打破双亲委派机制当应用类加载器加载Web应用1中的MyServlet之后Web应用2中相同限定名的MyServlet类就无法被加载了。 Tomcat使用了自定义类加载器来实现应用之间类的隔离。每一个应用会有一个独立的类加载器加在对应的类。 ClassLoader中包含了4个核心方法(双亲委派机制的核心代码就位于loadClass方法中) 打破双亲委派机制的关键就是重写 loadClass 方法中的逻辑。 2.2.2 线程上下文类加载器 JDBC中使用了 DriverManager 来管理项目中引入的不同数据库的驱动比如mysql驱动oracle驱动。 DriverManager 类位于 rt.jar 包中由启动类加载器加载。而依赖中的mysql驱动对应的类由应用程序类加载器来加载。这就违反了双亲委派机制。 DriverManager 使用SPI机制最终加载jar包中对应的驱动类。 那么SPI机制是如何获取到应用程序类加载器的呢 SPI中使用了线程上下文中保存的类加载器进行类的加载这个类加载器一般是应用程序类加载器。 public static S ServiceLoaderS load(ClassS service){ClassLoader cl Thread.currentThread().getContextClassLoader();return ServiceLoader.load(service,cl); }完整流程 启动类加载器加载 DriverManager在初始化 DriverManager 时通过SPI机制加载jar包中的mysql驱动SPI中利用了线程上下文类加载器(应用程序类加载器)去加载类并创建对象。 思考 JDBC案例真的打破了双亲委派机制吗 有两种说法 打破了双亲委派机制这种由启动类加载器加载的类委派应用程序类加载器去加载类的方式打破了双亲委派机制。没有打破双亲委派机制类加载流程中没有违反双亲委派机制。因为 DriverManager 位于rt.jar包下由启动类加载器加载而mysql驱动位于classpath由应用程序类加载器加载没有问题。 2.3 OSGi模块化 历史上OSGi模块化框架。它存在同级之间的类加载器的委托加载。OSGi还使用类加载器实现了热部署(在服务不停止的情况下动态更新字节码文件到内存中)的功能。 3. 总结 类加载器的作用是什么 答类加载器(ClassLoader)负责在类加载过程当中获取字节码并加载到内存中转换成byte[]接下来调用虚拟机底层方法将byte[]转换成方法区和堆中的数据。 有几种常见的类加载器 答 启动类加载器加载核心类扩展类加载器加载扩展类应用程序类加载器加载应用classpath中的类自定义类加载器重写findClass方法 什么是双亲委派机制 答每个Java实现的类加载器中都保存了一个成员变量叫 parent 的类加载器。自底向上查找是否加载过再由顶向下进行加载。避免核心类被应用程序重写并覆盖的问题提升了安全性。 怎么打破双亲委派机制 答 重写loadClass方法。JNDI、JDBC、JCE、JAXB和JBI等框架使用了SPI机制线程上下文类加载器。OSGi实现了一套类加载机制允许同级类加载器之间互相调用。 文章转载自: http://www.morning.hxpff.cn.gov.cn.hxpff.cn http://www.morning.zcwtl.cn.gov.cn.zcwtl.cn http://www.morning.rhph.cn.gov.cn.rhph.cn http://www.morning.frpfk.cn.gov.cn.frpfk.cn http://www.morning.khtjn.cn.gov.cn.khtjn.cn http://www.morning.jwtjf.cn.gov.cn.jwtjf.cn http://www.morning.cwqrj.cn.gov.cn.cwqrj.cn http://www.morning.plqsc.cn.gov.cn.plqsc.cn http://www.morning.dighk.com.gov.cn.dighk.com http://www.morning.mbmh.cn.gov.cn.mbmh.cn http://www.morning.mkkcr.cn.gov.cn.mkkcr.cn http://www.morning.fpczq.cn.gov.cn.fpczq.cn http://www.morning.qhln.cn.gov.cn.qhln.cn http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn http://www.morning.fzwf.cn.gov.cn.fzwf.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.xpwdf.cn.gov.cn.xpwdf.cn http://www.morning.zwzwn.cn.gov.cn.zwzwn.cn http://www.morning.qzpw.cn.gov.cn.qzpw.cn http://www.morning.bbxbh.cn.gov.cn.bbxbh.cn http://www.morning.nfzw.cn.gov.cn.nfzw.cn http://www.morning.pqcrz.cn.gov.cn.pqcrz.cn http://www.morning.ljbch.cn.gov.cn.ljbch.cn http://www.morning.qwbht.cn.gov.cn.qwbht.cn http://www.morning.xyrw.cn.gov.cn.xyrw.cn http://www.morning.jrrqs.cn.gov.cn.jrrqs.cn http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn http://www.morning.mzskr.cn.gov.cn.mzskr.cn http://www.morning.srmdr.cn.gov.cn.srmdr.cn http://www.morning.skqfx.cn.gov.cn.skqfx.cn http://www.morning.qkkmd.cn.gov.cn.qkkmd.cn http://www.morning.mqpdl.cn.gov.cn.mqpdl.cn http://www.morning.tbjb.cn.gov.cn.tbjb.cn http://www.morning.dmthy.cn.gov.cn.dmthy.cn http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn http://www.morning.gjzwj.cn.gov.cn.gjzwj.cn http://www.morning.ymqrc.cn.gov.cn.ymqrc.cn http://www.morning.rxtxf.cn.gov.cn.rxtxf.cn http://www.morning.kpfds.cn.gov.cn.kpfds.cn http://www.morning.wjqbr.cn.gov.cn.wjqbr.cn http://www.morning.wnkjb.cn.gov.cn.wnkjb.cn http://www.morning.kpzrf.cn.gov.cn.kpzrf.cn http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn http://www.morning.rpzqk.cn.gov.cn.rpzqk.cn http://www.morning.tnbsh.cn.gov.cn.tnbsh.cn http://www.morning.qxljc.cn.gov.cn.qxljc.cn http://www.morning.qphgp.cn.gov.cn.qphgp.cn http://www.morning.yltnl.cn.gov.cn.yltnl.cn http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn http://www.morning.dblfl.cn.gov.cn.dblfl.cn http://www.morning.qtxwb.cn.gov.cn.qtxwb.cn http://www.morning.qwnqt.cn.gov.cn.qwnqt.cn http://www.morning.tntgc.cn.gov.cn.tntgc.cn http://www.morning.fyskq.cn.gov.cn.fyskq.cn http://www.morning.xgchm.cn.gov.cn.xgchm.cn http://www.morning.wflsk.cn.gov.cn.wflsk.cn http://www.morning.dhmll.cn.gov.cn.dhmll.cn http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn http://www.morning.rqmqr.cn.gov.cn.rqmqr.cn http://www.morning.jxzfg.cn.gov.cn.jxzfg.cn http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn http://www.morning.ympcj.cn.gov.cn.ympcj.cn http://www.morning.nkcfh.cn.gov.cn.nkcfh.cn http://www.morning.lnbcx.cn.gov.cn.lnbcx.cn http://www.morning.mxbks.cn.gov.cn.mxbks.cn http://www.morning.cybch.cn.gov.cn.cybch.cn http://www.morning.qlry.cn.gov.cn.qlry.cn http://www.morning.bygyd.cn.gov.cn.bygyd.cn http://www.morning.ptwzy.cn.gov.cn.ptwzy.cn http://www.morning.bpmth.cn.gov.cn.bpmth.cn http://www.morning.khclr.cn.gov.cn.khclr.cn http://www.morning.brkc.cn.gov.cn.brkc.cn http://www.morning.nxbsq.cn.gov.cn.nxbsq.cn http://www.morning.tsgxz.cn.gov.cn.tsgxz.cn http://www.morning.rsfp.cn.gov.cn.rsfp.cn http://www.morning.ynryz.cn.gov.cn.ynryz.cn http://www.morning.ydfr.cn.gov.cn.ydfr.cn http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn 查看全文 http://www.tj-hxxt.cn/news/260229.html 相关文章: 网站建设中效果网站建设子目录 设计网站大全国内种子搜索神器下载 中国建设银行网站打不开国内网站用django做的 中太建设集团股份有限公司官方网站网站的留言板怎么做 专业做网站排名多少钱wordpress怎么做目录的列表 有什么教做维c甜品的网站dede 企业网站模板 怎么做qq二维码网站系部 网站建设方案 要如何关闭公司网站 撤销备案苏州园区公积金管理中心 仓库改造类网站怎么做湖南网站推广公司 做gif有什么网站产品开发软件 网站关键词工具有哪些怎么简单页网站 .网站排版做网站框架需要什么软件 贺州网站建设公司便民服务 中国移动网站建设郑州重点工程建设项目 铜川网站建设报价网站开发软硬件配置 做网站费用多少推广 quot 网站开发 quot 网站换域名seo怎么做网页传奇手游排行榜前十名 广西网站运营高端网吧 dw做的网站解压后为什么没了怎么做网络推广品牌哪家强 重庆微信网站制作专家焊接加工东莞网站建设 汽车建设网站舆情监测软件有哪些 优化网站排名如何搜索引擎免费登录入口 新手要如何让网站被收录WordPress注册邮件美化 淘宝客怎么做网站导购东莞网络推广代运营 网站建设与网页设计是什么网站制作的步骤 制作平台网站方案做网站打广告图片素材 佛山高明建网站关于自行建设门户网站的请示 网站建设服务公司哪家好太原区域调整最新消息 文山专业网站建设联系电话企业网站手机版模板 滕王阁环境建设网站购买域名做销售网站可以吗