- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 代码编译和执行的整个过程
Java 代码编译和执⾏的整个过程
Java 代码编译和执⾏的整个过程
Java 代码编译是由 Java 源码编译器来完成,流程图如下所⽰:
Java 字节码的执⾏是由 JVM 执⾏引擎来完成,流程图如下所⽰:
Java 代码编译和执⾏的整个过程 含了以下三个重要的机制:
Java 源码编译机制
类加载机制
类执⾏机制
Java 源码编译机制
Java 源码编译由以下三个过程组成:
分析和输⼊到符号表
注解处理
语义分析和⽣成 class ⽂件
流程图如下所⽰:
最后⽣成的 class ⽂件由以下部分组成:
结构信息。 括 class ⽂件格式版本号及各部分的数量与⼤⼩的信息。
元数据。对应于 Java 源码中声明与常量的信息。 含类/继承的超类/实现的接
⼜的声明信息、域与⽅法声明信息和常量池。
⽅法信息。对应 Java 源码中语句和表达式对应的信息。 含字节码、异常处理
器表、求值栈与局部变量区⼤⼩、求值栈的类型记录、调试符号信息。
类加载机制
JVM 的类加载是通过 ClassLoader 及其⼦类来完成的,类的层次关系和加载顺序可以
由下图来描述:
1)Bootstrap ClassLoader
负责加载$JAVA_HOME中jre/lib/rt.jar⾥所有的 class ,由 C++ 实现,不是
ClassLoader ⼦类。
2 )Extension ClassLoader
负责加载Java平台中扩展功能的⼀些 j ar , 括$JAVA_HOME中jre/lib/*.jar
或-Djava.ext.dirs指定⽬录下的 j ar 。
3 )App ClassLoader
负责记载 classpath 中指定的 j ar 及⽬录中 class 。
4 )Custom ClassLoader
属于应⽤程序根据⾃⾝需要⾃定义的 ClassLoader ,如 Tomcat 、jboss 都会根据 J2EE
规范⾃⾏实现 ClassLoader 。
加载过程中会先检查类是否被已加载,检查顺序是⾃底向上,从 Custom ClassLoader
到 BootStrap ClassLoader 逐层检查,只要某个 Classloader 已加载就视为已加载此类,
保证此类只所有 ClassLoade r加载⼀次。⽽加载的顺序是⾃顶向下,也就是由上层来
逐层尝试加载此类。
类执⾏机制
JVM 是基于栈的体系结构来执⾏ class 字节码的。线程创建后,都会产⽣程序计数器
(PC )和栈 (Stack ),程序计数器存放下⼀条要执⾏的指令在⽅法内的偏移量,栈
中存放⼀个个栈帧,每个栈帧对应着每个⽅法的每次调⽤,⽽栈帧又是有局部变量区
和操作数栈两部分组成,局部变量区⽤于存放⽅法中的局部变量和参数,操作数栈中
⽤于存放⽅法执⾏过程中产⽣的中间结果。栈的结构如下图所⽰:
W3Cschool ( )最⼤的技术知识分享与学习 台
此篇内容来⾃于 ⽹站⽤户上传并发布。
您可能关注的文档
- ITOOLS备份SHSH教程.pdf
- ITV终端、E8-B终端配置和安装.doc
- IV007智能播放器V1.1使用说明书.pdf
- iwatch听歌.docx
- J2EE体系结构及程序设计_课程标准_2014.pdf
- Java Character类.pdf
- Java Applet基础.pdf
- Java Jar文件.pdf
- Java Web----EL(表达式语言)详解.docx
- Java 异常使用.pdf
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
最近下载
- 第15课 两次鸦片战争 教学课件(共31张PPT)高中历史人教统编版中外历史纲要上册.pptx VIP
- 电子课件-《GSP实务教程》课题七.pptx VIP
- 电机与电气控制技术 任务后练习题参考答案 赵红顺 .pdf
- PEP人教版小学英语六年级下册教案 全册.pdf VIP
- [北京]2024年北京市文物局局属事业单位招聘笔试历年参考题库附带答案详解.docx
- 【课件】平移(课件)人教版(2024)数学七年级下册.pptx VIP
- 电子课件-《GSP实务教程》课题六.pptx VIP
- 部编版道德与法治五年级下册《读懂彼此的心》练习题.docx VIP
- 《研学旅行课程设计》课件——研学课程方案设计.pptx VIP
- 《Lagrange中值定理.ppt
文档评论(0)