一个Java程序是怎样运行起来的【class解析全过程】(3)

简介: 一个Java程序是怎样运行起来的【class解析全过程】(3)

常量池4---0A  00 13 00 14,对照着上面的分析,


#4 = Methodref          #19.#20        //  java/io/PrintStream.println:(Ljava/lang/String;)V


常量池5---07 00 15

  1,07---tag为7,类型为CONSTANT_Class,根据官方文档,其结构为


CONSTANT_Class_info {
    u1 tag;
    u2 name_index;
}


  2,00 15----当前类名称的索引值为21


#5 = Class              #21            //  Test


常量池6---07 00 16,对照上面的分析


#6 = Class              #22            //  java/lang/Object


常量池7---01 00 06 3C 69 6E 69 74 3E

 1,01---tag为1,类型为CONSTANT_Utf8,根据官方文档


CONSTANT_Utf8_info {
    u1 tag;
    u2 length;
    u1 bytes[length];
}


2,06---表示字符串的长度为6


 3,3C 69 6E 69 74 3E ---字符串<init>


#7 = Utf8               <init>


常量池8---01 00 03 28 29 56


常量池9---01 00 04 43 6F 64 65


常量池10---01 00 0F 4C 69 6E 65 4E 75 6D 62 65 72 54 61 62 6C 65


常量池11---01 00 04 6D 61 69 6E


常量池12---01 00 16 28 5B 4C 6A 61 76 61 2F 6C 61 6E 67 2F 53 74 72 69 6E 67 3B 29 56


常量池13---01 00 0A 53 6F 75 72 63 65 46 69 6C 65


常量池14---01 00 09 54 65 73 74 2E 6A 61 76 61


   #8 = Utf8               ()V
   #9 = Utf8               Code
  #10 = Utf8               LineNumberTable
  #11 = Utf8               main
  #12 = Utf8               ([Ljava/lang/String;)V
  #13 = Utf8               SourceFile
  #14 = Utf8               Test.java
相关文章
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
2360 0
Java的CAS机制深度解析
CAS(Compare-And-Swap)是并发编程中的原子操作,用于实现多线程环境下的无锁数据同步。它通过比较内存值与预期值,决定是否更新值,从而避免锁的使用。CAS广泛应用于Java的原子类和并发包中,如AtomicInteger和ConcurrentHashMap,提升了并发性能。尽管CAS具有高性能、无死锁等优点,但也存在ABA问题、循环开销大及仅支持单变量原子操作等缺点。合理使用CAS,结合实际场景选择同步机制,能有效提升程序性能。
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
372 2
|
12月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
442 98
|
Java 开发者
Java并发编程:CountDownLatch实战解析
Java并发编程:CountDownLatch实战解析
681 100
|
存储 缓存 Java
Java数组全解析:一维、多维与内存模型
本文深入解析Java数组的内存布局与操作技巧,涵盖一维及多维数组的声明、初始化、内存模型,以及数组常见陷阱和性能优化。通过图文结合的方式帮助开发者彻底理解数组本质,并提供Arrays工具类的实用方法与面试高频问题解析,助你掌握数组核心知识,避免常见错误。
|
缓存 安全 Java
Java并发性能优化|读写锁与互斥锁解析
本文深入解析Java中两种核心锁机制——互斥锁与读写锁,通过概念对比、代码示例及性能测试,揭示其适用场景。互斥锁适用于写多或强一致性场景,读写锁则在读多写少时显著提升并发性能。结合锁降级、公平模式等高级特性,助你编写高效稳定的并发程序。
545 0
|
12月前
|
存储 安全 Java
《数据之美》:Java集合框架全景解析
Java集合框架是数据管理的核心工具,涵盖List、Set、Map等体系,提供丰富接口与实现类,支持高效的数据操作与算法处理。
|
Java 开发者
Java 函数式编程全解析:静态方法引用、实例方法引用、特定类型方法引用与构造器引用实战教程
本文介绍Java 8函数式编程中的四种方法引用:静态、实例、特定类型及构造器引用,通过简洁示例演示其用法,帮助开发者提升代码可读性与简洁性。

推荐镜像

更多
  • DNS