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

建设银行手机网站变南京市网站开发

建设银行手机网站变,南京市网站开发,网络培训的心得体会,盘丝洞app破解无限盘币JVM 类加载器的工作原理 类加载器#xff08;ClassLoader#xff09;是一个用于加载类文件的子系统#xff0c;负责将字节码文件#xff08;.class 文件#xff09;加载到 JVM 中。Java 类加载器允许 Java 应用程序在运行时动态地加载、链接和初始化类。 2. 类加载器的工…JVM 类加载器的工作原理 类加载器ClassLoader是一个用于加载类文件的子系统负责将字节码文件.class 文件加载到 JVM 中。Java 类加载器允许 Java 应用程序在运行时动态地加载、链接和初始化类。 2. 类加载器的工作过程 JVM 类加载过程主要包括以下三个阶段 加载Loading 搜索并加载类文件类加载器通过类名查找相应的 .class 文件并将其读取到内存中。生成 Class 对象将读取到的字节码转换成 JVM 能够识别的 Class 对象。 链接Linking 验证Verification确保字节码文件的正确性和安全性包括检查字节码格式是否正确操作码是否正确等。准备Preparation为类的静态变量分配内存并设置默认初始值。解析Resolution将符号引用转换为直接引用。 初始化Initialization 执行类构造器 clinit 方法这是由编译器自动生成的用于初始化类的静态变量和静态代码块。 3. 类加载器的类型 JVM 中有几种类型的类加载器每种类加载器有其特定的职责 引导类加载器Bootstrap ClassLoader 这是 JVM 自带的类加载器用于加载 Java 核心库即 JDK 安装目录下的 jre/lib/rt.jar 文件。 扩展类加载器Extension ClassLoader 加载位于 jre/lib/ext 目录中的类库或通过 java.ext.dirs 系统属性指定的类库。 应用程序类加载器Application ClassLoader 加载应用程序的类路径classpath下的类文件是用户自定义类加载的默认类加载器。 自定义类加载器Custom ClassLoader 用户可以通过继承 ClassLoader 类并重写其方法来定义自己的类加载器。 双亲委派模型 Java 的类加载器采用双亲委派模型Parent Delegation Model其核心思想是某个类加载器在加载类时首先将类加载请求委托给父类加载器只有在父类加载器无法完成加载时才尝试自己加载。这一模型可以有效避免类的重复加载确保 Java 核心类库的安全性。 双亲委派模型的工作流程 类加载请求当应用程序需要使用一个类时类加载器接收到该类的加载请求。委派父加载器当前类加载器首先将加载请求委派给它的父加载器。递归检查父加载器再将请求委派给它的父加载器依次递归直到到达引导类加载器。加载类 父加载器加载成功如果父加载器能够找到并加载该类则直接返回该类的 Class 对象。父加载器加载失败如果父加载器无法加载该类则返回给子加载器由子加载器尝试加载。 双亲委派模型的好处 保证核心类库的安全性通过双亲委派机制Java 核心类库如 java.lang.Object由引导类加载器统一加载避免了核心类库被篡改的风险。避免类的重复加载通过委派机制可以避免同一个类被多个类加载器重复加载从而减少内存消耗和潜在的类冲突问题。模块化和灵活性支持不同类加载器加载不同模块提高了系统的模块化和灵活性。 双亲委派模型的实现 Java 类加载器通过以下几个类和方法实现双亲委派模型 ClassLoader 类Java 提供了一个抽象类 ClassLoader所有类加载器都需要继承这个类。loadClass 方法ClassLoader 类的核心方法之一用于加载类。默认实现了双亲委派模型。 protected Class? loadClass(String name, boolean resolve) throws ClassNotFoundException {synchronized (getClassLoadingLock(name)) {// 检查类是否已经加载Class? c findLoadedClass(name);if (c null) {try {// 委派父加载器加载类if (parent ! null) {c parent.loadClass(name, false);} else {c findBootstrapClassOrNull(name);}} catch (ClassNotFoundException e) {// 父加载器未找到类}// 当前加载器尝试加载类if (c null) {c findClass(name);}}if (resolve) {resolveClass(c);}return c;} }双亲委派模型的实例 假设有一个自定义类加载器 CustomClassLoader其父类加载器为系统类加载器。 public class CustomClassLoader extends ClassLoader {public CustomClassLoader(ClassLoader parent) {super(parent);}Overridepublic Class? findClass(String name) throws ClassNotFoundException {byte[] classData loadClassData(name);if (classData null) {throw new ClassNotFoundException();}return defineClass(name, classData, 0, classData.length);}private byte[] loadClassData(String name) {// 自定义加载类文件字节码的逻辑return null;} }在加载类时CustomClassLoader 会首先将加载请求委派给父加载器系统类加载器如果系统类加载器无法找到该类才会使用 findClass 方法加载。 参考链接 Java 官方文档 - 类加载器
http://www.pierceye.com/news/295787/

相关文章:

  • p2p网站如何建设网站建设 源美设计
  • 电商网站建设图片ps网站首页设计图
  • 网站优化简历模板用土豆做美食的视频网站
  • 帮企业建设网站销售微信朋友圈广告在哪里做
  • 曲阜做网站的公司wordpress两个域名
  • 做设备租赁的网站如何把自己做的网站发布到网上
  • 做网站运营有前景吗关于网站建设意见和建议
  • 如何给网站的关键词做排名南海做网站公司
  • 仿站软件邢台手机网站建设价格
  • 学校网站开发与设计什么是网络营销促销?
  • 胶州网站搭建企业wordpress站内信群发
  • WordPress做的网站源代码网站备案失效
  • 承德网站制作与建设wordpress h5播放器
  • .net网站程序网站建设 报告
  • 中国做的电脑系统下载网站好互动网站
  • 网站使用培训方案网站后台工程师
  • 做网站优化找谁简单网站页面
  • 青岛做公司网站佛山网站建设锐艺传播
  • 江苏商城网站制作公司网站备案时间
  • 网站开发用到什么技术公司做影视网站侵权
  • 自己做网站大概多少钱唐山丰南建设局网站
  • 建设法律法规文本查询网站什么是建设型的网站
  • 如何设计一个购物网站如何免费网络营销推广
  • 网站制作服务好的商家做网站送的企业邮箱能用吗
  • 免费行情软件app网站排行企业内部网站如何建设
  • 沧州网络运营中心在哪里新的seo网站优化排名 网站
  • 米拓建站免费模板wordpress那个主题收录好
  • 网站后台中小型网站建设的基本流程
  • 一键做网站的软件爱互融网站开发合同
  • 平顶山市哪里有做网站的高端的扬中网站建设