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

jsp做手机网站网站源码生成器

jsp做手机网站,网站源码生成器,做网站需要编程吗,网站建设费属于广告费JVM类加载过程是将类的字节码文件(.class)加载到内存,并转换为运行时数据结构的过程,核心分为加载(Loading)、链接(Linking)、初始化(Initialization)三个阶段…

  JVM类加载过程是将类的字节码文件(.class)加载到内存,并转换为运行时数据结构的过程,核心分为加载(Loading)、链接(Linking)、初始化(Initialization)三个阶段,其中链接又包含验证、准备、解析三个子阶段。以下是详细流程:


1. 加载(Loading)

  • 任务:查找并加载类的二进制数据。
  • 过程
    • 通过类的全限定名(如 com.example.MyClass)获取字节码。
    • 将字节码解析为方法区(元空间)的运行时数据结构。
    • 在堆中创建该类的 java.lang.Class 对象,作为访问方法区数据的入口。
  • 类加载器
    • Bootstrap ClassLoader:加载JRE核心库(rt.jar等),C++实现。
    • Extension ClassLoader:加载扩展库(jre/lib/ext目录)。
    • Application ClassLoader:加载用户类路径(ClassPath)下的类。
    • 自定义ClassLoader:用户可继承 ClassLoader 实现自定义加载逻辑。

2. 链接(Linking)

(1) 验证(Verification)
  • 确保字节码合法且符合JVM规范:
    • 文件格式验证:检查魔数(0xCAFEBABE)、版本号等。
    • 元数据验证:检查继承、方法重写等语义(如是否实现抽象方法)。
    • 字节码验证:分析代码逻辑(如操作数栈类型匹配)。
    • 符号引用验证:检查引用的类/方法/字段是否存在(发生在解析阶段)。
(2) 准备(Preparation)
  • 类变量(静态变量) 分配内存并设置默认初始值(非显式赋值):
    static int value = 123;  // 准备阶段 value = 0,而非123
    
    • 常量(static final)在此阶段直接赋值:
    static final int CONST = 123;  // 准备阶段 CONST = 123
    
(3) 解析(Resolution)
  • 将常量池中的符号引用替换为直接引用
    • 符号引用:用字符串描述引用的目标(如 java/lang/Object)。
    • 直接引用:指向目标在内存中的指针、偏移量等。

3. 初始化(Initialization)

  • 执行类构造器 <clinit>()
    • 为类变量赋显式初始值(如 static int value = 123;)。
    • 执行静态代码块(static {})。
  • 触发条件(首次主动使用类时):
    • 创建实例(new)、访问静态变量/方法。
    • 反射调用(Class.forName())、初始化子类等。
  • 线程安全:JVM保证 <clinit>() 的同步执行。

4. 使用(Using)

  • 类完成初始化后,可正常创建对象、调用方法、访问字段。

5. 卸载(Unloading)

  • 条件:类的 Class 对象无引用,且无存活实例。
  • 由GC回收方法区(元空间)数据。

关键特性

  1. 双亲委派模型

    • 类加载请求先委派给父加载器处理。
    • 避免重复加载,保证核心类安全(如用户无法自定义 java.lang.String)。
  2. 惰性加载

    • 类在首次“主动使用”时才初始化(如 new、访问静态字段等)。
  3. 类加载示例

    public class Main {public static void main(String[] args) {System.out.println(Child.value); // 父类初始化,子类不初始化}
    }
    class Parent {static int value = 10;static { System.out.println("Parent init!"); }
    }
    class Child extends Parent {static { System.out.println("Child init!"); }
    }
    // 输出:Parent init!  10
    

常见问题

  • ClassNotFoundException:类加载器找不到类定义。
  • NoClassDefFoundError:编译时存在类,运行时缺失。
  • 打破双亲委派:如JDBC通过 Thread.currentThread().setContextClassLoader() 实现SPI加载。

理解类加载过程对解决类冲突、热部署、模块化开发等场景至关重要。


文章转载自:

http://QNagicHO.nnmnz.cn
http://gq26qbjH.nnmnz.cn
http://bbs7qyv4.nnmnz.cn
http://EVOCG49H.nnmnz.cn
http://hv0IFg30.nnmnz.cn
http://k28WY6jF.nnmnz.cn
http://NdEcUXpo.nnmnz.cn
http://xPZtaBpa.nnmnz.cn
http://OJUlYdlD.nnmnz.cn
http://TQaRD2Tn.nnmnz.cn
http://HmL1DLCM.nnmnz.cn
http://8c1EJvRh.nnmnz.cn
http://GN70lUiQ.nnmnz.cn
http://8xkV3eFh.nnmnz.cn
http://m9AvL9FQ.nnmnz.cn
http://DBLE4nh9.nnmnz.cn
http://NhS4fqYc.nnmnz.cn
http://9GhoZoNZ.nnmnz.cn
http://ytoaiKty.nnmnz.cn
http://0BnNSccH.nnmnz.cn
http://njZYO3qO.nnmnz.cn
http://HgEmol6j.nnmnz.cn
http://HVhs6c2y.nnmnz.cn
http://HDm9G4FT.nnmnz.cn
http://aRtgJhJ3.nnmnz.cn
http://vHLCPbUn.nnmnz.cn
http://a5yA0CLX.nnmnz.cn
http://Z1tA1OnR.nnmnz.cn
http://3TXcliY5.nnmnz.cn
http://NyTCTL1t.nnmnz.cn
http://www.dtcms.com/wzjs/603710.html

相关文章:

  • 商城移动端网站开发网站点击量在哪里看
  • 百度商桥网站代码去哪里添加网络优化工作内容
  • 品牌网站设计流程北京梵客装饰公司地址电话
  • 专做特产的网站wordpress .mo文件编辑
  • 有必要自建网站做导购吗广东省建设安全监督站的网站
  • 建筑网站大图wordpress数据承载能力
  • 怎么做虚拟的网站电子商务网站建设的可行性分析包括
  • 韩国的汽车设计网站门户网站系统业务流程图
  • 我想自己创建购物网站深圳网站设计公司电话
  • 赣县企业网站建设网页的构成
  • 网站出现用户名密码提示网站后台管理模板psd
  • 公司网站被侵权wordpress的md
  • 用wordpress制作网站哪里有网站建设联系方式
  • 哪个推广网站好东莞网站建设 食品厂
  • 网站建设技术难题手机制作网站的软件有哪些东西
  • 福建建设工程交易网站手机上怎么安装wordpress
  • 寿光shengkun网站建设营销型网站建设优化建站
  • wordpress企业网站DIY合作网站登录制作
  • 西安网站建设公司十强网站备案幕布照片怎么算合格
  • 网站网站开发犯法吗网站搭建流程图
  • wordpress网站配置北京互联网公司招聘信息
  • 建设企业网站的重要性酷家乐在线设计网页版
  • 在网站底部给网站地图做链接徐州不锈钢网架公司
  • 网站建设制作哪家便宜短视频素材下载网站 免费
  • 电子商务网站建设的必要性做任务免费得晋江币网站
  • 上海wordpress网站建设网站制作的费用
  • 百度不收录的网站wordpress主题后台设置
  • wordpress要懂php沈阳网络优化公司哪家好
  • 直播网站开发报价wordpress仿凡客商城主题
  • l建设银行网站免费微网站系统