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

网站开发源码杭州建筑设计公司排名

网站开发源码,杭州建筑设计公司排名,360免费wifi电脑版官方下载,深圳网站制作公司排名专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、介绍 二、扩展类加载器 三、通过扩展类加载器去加载用户jar包 1.放入/jre/lib/ext下进行扩展 2.使用参数进行扩展 四、应用程序类加载器 总结 前言 ​JVM作为Java程序的运行… 专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、介绍 二、扩展类加载器 三、通过扩展类加载器去加载用户jar包 1.放入/jre/lib/ext下进行扩展 2.使用参数进行扩展 四、应用程序类加载器 总结 前言 ​JVM作为Java程序的运行环境其负责解释和执行字节码管理内存确保安全支持多线程和提供性能监控工具以及确保程序的跨平台运行。本文主要介绍了扩展类加载器、通过扩展类加载器去加载用户jar包、应用程序类加载器等内容。 ​ 在Java虚拟机JVM中类加载器负责将类的字节码文件加载到内存中并生成对应的Class对象。类加载器是Java虚拟机中的重要组成部分其中Java代码实现的类加载器包括扩展类加载器和应用程序类加载器JDK8及之前的版本。 一、介绍 扩展类加载器和应用程序类加载器是JDK中提供的、使用Java编写的类加载器。它们是sun.misc.Launcher的静态内部类并继承自URLClassLoader。这两个类加载器具备通过目录或指定jar包将字节码文件加载到内存中的能力。此外它们还提供了更多的功能和灵活性以支持Java应用程序的动态类加载需求。 ClassLoader抽象类定义了类加载器的具体行为模式通过JNI调用底层的Java虚拟机方 法。SecureClassLoader使用证书机制提升类加载的安全性。URLClassLoader利用URL获取目录下或者指定的jar包进行加载获取其字节码数据。 扩展类加载器 Extension 加载Java安装目录/jre/lib/ext下的类文件。 应用程序类加载器 Application 加载classpath下的类文件。 二、扩展类加载器 扩展类加载器Extension Class Loader是JDK中提供的一个功能强大的类加载器它使用Java语言编写用于加载Java安装目录/jre/lib/ext下的类文件。该加载器继承自Java的URLClassLoader类具有高度的灵活性和可扩展性能够根据需要动态地加载和卸载类文件从而满足Java应用程序的多样化需求。 ClassLoader提供了许多方法来动态加载类如loadClass()、defineClass()等。这些方法允许程序员在运行时动态地加载类的字节码文件并生成对应的Class对象。 案例 获取扩展类加载器 public class ExtClassLoaderDemo {public static void main(String[] args){ClassLoader classLoader ScriptEnvironment.class.getClassLoader();System.out.println(classLoader);} } 运行结果 三、通过扩展类加载器去加载用户jar包 通过将所需的jar包放入/jre/lib/ext目录下和使用参数进行扩展两种方法开发者可以利用扩展类加载器来加载用户提供的JAR包。在使用时请根据具体情况选择最适合的方式并注意避免可能出现的冲突和问题。 1.放入/jre/lib/ext下进行扩展 一种直接的方法是将所需的jar包放入/jre/lib/ext目录下让扩展类加载器能够加载到这个jar包中的类。尽管这种方法能够使 JAR 包被类加载器加载但并不推荐。主要原因是这涉及到更改 JDK 安装目录中的内容可能会引发不可预测的问题也可能影响到 JDK 的升级。 2.使用参数进行扩展 推荐使用-Djava.ext.dirsjar包目录进行扩展。这种方式可以加载用户提供的 JAR 包但是会覆盖原始目录。所以在Windows上可以使用分号;来分隔多个目录在MacOS和Linux上可以使用冒号:来分隔多个目录。 案例 加载jar包省略用户JAR包打包步骤 public class Demo2 {public static void main(String[] args) throws ClassNotFoundException {Class? aClass Class.forName(com.rye.test.Test);System.out.println(aClass);ClassLoader classLoader aClass.getClassLoader();System.out.println(classLoader); // 验证没有覆盖原始目录ClassLoader loader ScriptEnvironment.class.getClassLoader();System.out.println(loader);} } 使用-Djava.ext.dirsjar包目录进行扩展 -Djava.ext.dirsjar包目录 -Djava.ext.dirsD:\Java\jdk1.8.0_201\jre\lib\ext;D:\Test 运行结果 四、应用程序类加载器 应用程序类加载器Application Class Loader也是JDK中提供的、使用Java编写的类加载器。它的主要任务是加载应用程序的classpath下的类文件。 案例 获取应用程序类加载器 public class AppClassLoader {public static void main(String[] args) {// 该项目创建的Student类Student student new Student();ClassLoader classLoader Student.class.getClassLoader();System.out.println(classLoader);// maven依赖中的类ClassLoader classLoader1 FileUtils.class.getClassLoader();System.out.println(classLoader1);} } 运行结果 总结 JVM是Java程序的运行环境负责字节码解释、内存管理、安全保障、多线程支持、性能监控和跨平台运行。本文主要介绍了扩展类加载器、通过扩展类加载器去加载用户jar包、应用程序类加载器等内容希望对大家有所帮助。
http://www.pierceye.com/news/30135/

相关文章:

  • 怎么建立一个网站当站长建设网站报告
  • 如何设置网站icon优秀网站的颜色搭配
  • php网站开发基础教程网站建设徐州
  • 甘肃省交通建设集团有限公司网站四川seo推广方案
  • 有专业做网站的吗网站公司本地网页制作软件
  • 番禺企业网站建设网站建设广州
  • 学做衣服网站知乎wordpress子页面密码错误
  • 一级a做爰网站免费书画展示网站模板
  • 现在pc端网站开发用的什么技术中国国防建设网站
  • 做英雄联盟网站的图片素材公司如何登录网站做就业登记
  • 餐饮网站建设公司旅游主题网站怎么做
  • 烟台建站程序镇江个人网站建设
  • 外贸工厂网站做seo多吗seo技能培训课程
  • 哪个网站生鲜配送做的好处qt做网站服务器
  • 京东商城的网站怎么建设的网店免费注册
  • 建设网站需要给钱吗线上推广专员岗位职责
  • 网站备注销快速生成html模板
  • 秦皇岛手机网站制作免费注册163邮箱帐号
  • 珠三角做网站分类信息网站平台的推广
  • 网站建设套定额零售客户电商网站登录
  • 益阳有专做网站的吗装修平台排行榜前十名
  • 网站建设 建议电商网站方案
  • 苏州网站开发培训班99设计网站
  • 那个公司可以做网站wordpress 仿站 主题
  • 设计师个人网站架构龙岩上杭县
  • 网站制作的英文网站401错误
  • 上市公司集团网站建设电商素材网站
  • 网站管理助手 mysql电动牙刷开发
  • 创建官方网站电子商务网店运营推广
  • 关于做网站的外语文献tk域名注册官网