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

做网站好还是做程序员好wordpress new图标

做网站好还是做程序员好,wordpress new图标,交换链接平台,南宁软件优化网站建设概述 Java虚拟机#xff08;JVM#xff09;是Java程序运行的核心#xff0c;其中类加载器和双亲委派模型是JVM的重要组成部分。本文将深入讨论这两个概念#xff0c;并解释它们在实际开发中的应用。 1. 什么是类加载器#xff1f; 类加载器是JVM的一部分#xff0c;负…概述 Java虚拟机JVM是Java程序运行的核心其中类加载器和双亲委派模型是JVM的重要组成部分。本文将深入讨论这两个概念并解释它们在实际开发中的应用。 1. 什么是类加载器 类加载器是JVM的一部分负责加载Java类的字节码文件。Java应用程序中的每个类都必须由类加载器加载类加载器将类的字节码文件从磁盘或网络加载到内存中并在JVM中创建一个对应的Class对象。 类加载器工作原理示意图 2. 什么是双亲委派模型 双亲委派模型是一种类加载器之间的层次结构它通过父类加载器委派给子类加载器加载类。当一个类需要被加载时首先会请求父类加载器加载只有当父类加载器无法加载时才由子类加载器尝试加载。这种层次结构有助于保持类的唯一性防止重复加载提高安全性。 详解原理分析 1. 类加载器的工作原理 类加载器按照三个阶段加载类加载、连接和初始化。加载器根据类的全名定位类的二进制字节流然后将其转化为Class对象。 类的加载过程 /*** 类加载子系统 * */ public class HelloLoader {public static void main(String[] args) {System.out.println(类加载....);} } 加载阶段 获取类的二进制字节流 通过类的全限定名获取定义此类的二进制字节流。 转化为方法区的运行时数据结构 将字节流代表的静态存储结构转化为方法区的运行时数据结构。 生成java.lang.Class对象 在内存中生成一个代表这个类的java.lang.Class对象作为方法区这个类的访问入口。 加载class文件的方式 本地系统中直接加载通过网络获取Web Applet从zip压缩包中读取基础为jar、war格式运行时计算生成动态代理技术由其他文件生成JSP应用从数据库提取从加密文件中获取防Class文件反编译保护 链接阶段 验证Verify 目的确保Class文件的字节流中包含信息符合虚拟机要求保证加载的类正确性不危害虚拟机自身安全。验证包括文件格式验证、元数据验证、字节码验证、符号引用验证。 准备Prepare 为类变量分配内存并设置默认初始值即零值。类变量会分配在方法区中。不包含使用final修饰的static因为final在编译时就分配并显式初始化。实例变量随对象分配到Java堆中。 解析Resolve 将常量池内的符号引用转换为直接引用。解析操作通常在初始化之后执行。解析针对类、字段、类方法、接口方法、方法类型等。 初始化阶段 执行类构造器clinit()的过程该方法由编译器自动收集类中的类变量赋值动作和静态代码块中的语句合并而来。静态变量在准备阶段赋初值初始化阶段才是实际值。初始化顺序按源文件中出现的顺序执行。父类的clinit()在子类的clinit()之前执行确保父类初始化完毕。 类加载器分类 启动类加载器Bootstrap ClassLoader 加载核心库不继承ClassLoader父加载器为null。加载java、javax、sun等开头的类。 扩展类加载器Extension ClassLoader 加载扩展目录中的类库。 应用程序类加载器AppClassLoader 加载classpath或系统属性java.class.path指定路径下的类库。系统默认的类加载器。 用户自定义类加载器 通过继承ClassLoader实现用于隔离加载类、修改加载方式、扩展加载源、防止源码泄漏。 2. 双亲委派模型的工作流程 当一个类加载器收到加载请求时首先检查自己是否已经加载了这个类。如果已加载则直接返回Class对象。如果未加载则将加载请求委派给父类加载器。这一过程一直递归进行直到根加载器如果根加载器仍未加载则由当前加载器加载类。 怎么打破双亲委派模型 打破双亲委派机制则不仅要继承ClassLoader类还要重写loadClass和findClass方法。 知识点在实际开发的应用 1. 模块化开发 双亲委派模型在模块化开发中得到广泛应用。通过将不同的功能模块交给不同的类加载器加载可以有效隔离模块之间的类确保模块的独立性。 案例详解 假设我们有一个大型电商应用分为用户模块、订单模块和支付模块。每个模块有自己的类加载器负责加载模块内的类。这种模块化的设计可以使得每个模块独立开发、测试和部署降低了系统的耦合性。 2. 动态加载 类加载器的灵活性使得在运行时动态加载类成为可能。这在某些框架和插件系统中得到了广泛应用使系统更具可扩展性。 案例详解 考虑一个图形编辑器的插件系统用户可以根据需要选择性地加载不同的插件。每个插件都由一个独立的类加载器加载这样用户可以在运行时添加或移除插件无需重新启动编辑器。 总结 本文深入探讨了JVM中的类加载器和双亲委派模型通过示意图等多种呈现形式从概念到原理再到实际应用进行了全方位的讲解。了解这些知识对于理解Java程序的运行机制优化性能以及实现模块化开发和动态加载都具有重要意义。通过深入学习这些内容开发者可以更好地利用JVM的特性写出更健壮、高效的Java应用程序。
http://www.pierceye.com/news/648941/

相关文章:

  • 大丰专业做网站做旅游网站当地人服务赚钱吗
  • 长沙网站制作公司推荐seo关键词排名优化
  • 内蒙古住房与城乡建设部网站广州十大软件公司排名
  • 营销型网站 易网拓德阳做网站
  • 网站建设seo虾哥网络购物网站技术实施方案
  • 门户网站框架下载陕西省建设工会网站
  • 网站有信心做的更好做外贸到什么网站上发布比较好
  • wex5做网站wordpress页面的设置
  • 绍兴市建设银行网站网站建设的基本术语
  • 建筑企业网站模板免费下载seo 网站换程序
  • wordpress怎么做排名seo怎么样
  • 电商网站开发平台哪家好百度运营怎么做
  • 门户网站 源码网站建设推广公司范围
  • 网站字体大小wordpress用户登录页面
  • 影院禁止18岁以下观众入内宿迁新站seo
  • 龙岗网站设计机构网站开发开始阶段的主要任务包括( )。
  • 宿州公司网站建设教做世界美食的网站
  • 网站建设价格很 好乐云seo免费自学编程
  • 网站哪家做的好公共资源交易中心级别
  • html5网站开发工具自己做微信电影网站怎么做
  • 学院网站制度建设成品大香伊煮蕉免费在线
  • 做网站的域名和空间是什么意思佛山建站专
  • 网站是哪个公司做wordpress 底部修改插件
  • 嘉兴网站推广优化印度vps
  • 网站seo诊断分析和优化方案青岛网站制作方案
  • 发布个人免费网站的一般流程图宣传广告
  • php学什么可以做网站po wordpress
  • 875网站建设怎么样网站设计高端网站设计
  • qq钓鱼网站怎么制作扬州网站建设哪个好薇
  • 域名和网站空间怎么做解析南阳seo网站推广费用