持续更新JVM相关知识,敬请关注:

Java虚拟机精髓专栏​zhuanlan.zhihu.com

这里再简单回顾下Java代码执行的整个过程,首先是前端编译过程,java源文件,通过前端编译器,生成出字节码文件(class文件)。

前端编译器,细化会拆分出词法分析、语法分析、语义分析、字节码生成,这部分的内容不必过多研究,大致了解下就可以,如果你学过汇编相关知识,会比较了解这一块。

另外,如果你想自己开发一门属于自己的语言,然后借助Java虚拟机去运行,那你则需要在这部分好好下下工具,去设计你自己的语法规范、开发自己的编译器,然后只要最终生成的字节码文件复核JVM的规范,就可以在其上运行。

在编译过程的众多环节上,任何一个部分失败,都将导致最终的字节码文件生成失败。JAVA出于安全考虑,对于字节码文件的要求非常高,只有完全符合规范的class文件才能被最终执行。

图下面的java虚拟机部分就是上一节中所提到的,字节码解释运行的过程,负责把字节码文件翻译成操作系统能够看懂的机器指令。这里要说一下,操作系统只能够看懂机器指令,当前的高级语言,需要先翻译成汇编语言,然后再翻译成机器指令,解释器、JIT组成的执行引擎就是做这个的。

解释器是负责响应时间,JIT主要负责性能。

JAVA代码运行流程
执行引擎细节

java代码_【JAVA虚拟机(JVM)精髓】05-Java代码的执行过程相关推荐

  1. Java虚拟机JVM学习05 类加载器的父委托机制

    Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中. 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap ...

  2. 【深入Java虚拟机JVM 01】Java发展与展望概述

    目录 1.1 概述 1.2 Java技术体系 1.3 Java发展史 1.4 展望Java技术的未来 1.4.1 模块化 1.4.2 混合语言 1.4.3 多核并行 1.4.4 进一步丰富语法 1.4 ...

  3. java多线程异步调用别的系统接口代码_抢先准备,40个 Java 多线程面试题及答案大汇总!...

    ↑↑↑点上方蓝字关注并标⭐「IT技术思维」 一起培养顶尖技术思维 来源:程序员共成长(id:finishbug) 这些多线程的问题,有些来源于各大网站.有些来源于自己的思考.可能有些问题网上有.可能有 ...

  4. 基础贴吧java代码_原来你是这样的JAVA[01]-基础一瞥

    1.Java是什么呢? Java不仅是一门语言,而且是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供安全性.跨操作系统的可移植性以及自动垃圾收集等服务的执行环境. 2.JDK 和 ...

  5. 冒泡排序java代码_数据结构与算法—冒泡排序(Java实现)

    [toc] 冒泡排序 程序代码 package com.uplooking.bigdata.datastructure; import java.util.Arrays; public class B ...

  6. amd cpu不能在cmd环境下运行java代码_如何在Windows10中配置java的JDK环境

    今天给大家分享一下如何配置java的JDK环境.操作步骤如下: 1.下载好 jdk 的安装文件,我下载的是 jdk-10.0.1_windows-x64_bin.exe 这个版本的安装文件: 2.使用 ...

  7. aixs1 生成java代码_通过axis1.4 来生成java客户端代码

    1.首先下载axis-1.4所有的jar包, 2.我是直接打开cmd,进入到该jar包的目录下, 3.直接运行命令(运行这个命令之前要确定java的环境变量都已配置好): java -Djava.ex ...

  8. 关于equals的Java代码_与equals方法相关的Java代码

    t3.equals(t3)是唯一具有与方法签名public boolean equals (Test testje)匹配的正确参数的行,因此它是程序中唯一实际调用该print语句的行. 这个问题旨在教 ...

  9. java冒泡测试代码_数据结构与算法—冒泡排序(Java实现)

    [toc] 冒泡排序 程序代码package com.uplooking.bigdata.datastructure;import java.util.Arrays;public class Bubb ...

  10. java幻灯片播放代码_简单常用的幻灯片播放实现代码

    幻灯片自动播放图片是当前网站比较流行的一个展示方式.在网上我们能找到各种特效丰富的幻灯片插件和代码.这里项目需要,我自己做了一个简单的,就不详细讲解了,代码很简单.直接看效果图和代码吧. 所有代码 p ...

最新文章

  1. python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组、使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank)
  2. struts2点滴记录
  3. Linux文件系统只读Read-only file system
  4. 【火爆】微软的Holographic会给我们带来什么?Imagine porn with this...
  5. SAP SMW0 上传EXCEL模板遇到的问题
  6. 1.有意义的命名(代码的整洁之道)
  7. go调用ffmpeg
  8. Ext2 中如何换行 布局?
  9. 切比雪夫加权 matlab,matlab切比雪夫多项式
  10. Win10极简fliqlo时钟屏保(附下载链和安装教程)
  11. 【仿淘宝首页】前端网页模板,大学生前端作业分享,html5+css电商网站模板,包含js动效
  12. 处理100万条数据 python_仅需1秒!搞定100万行数据:超强Python数据分析利器
  13. FPGA自学11——以太网通信
  14. 美国大学计算机课程教材,美国大学计算机基础教学课程结构一瞥.pdf
  15. 单模光电转换器怎么接_光纤收发器怎么连接?光纤收发器安装图解大全!
  16. GreenPlum小结
  17. EXCEL之如何批量把文本型数字转化为数字
  18. uniapp 更换导航栏图标并添加事件
  19. celery学习笔记
  20. kkkkkkkkkkkk

热门文章

  1. Android input监控耳机插入demo
  2. Android中long类型对应Java/Jni/C++中的类型
  3. Android java和C的Socket通信demo(可用)
  4. Mac OS X上使用Wireshark(可用)
  5. ios libfdk-aac encode
  6. UITextField 文字垂直居中
  7. VALSE学习(十二):视频时序建模和动作识别
  8. ES6中的React生命周期详解
  9. esp8266 米家_【保姆级教程】米家全屋智能家居避坑指南+新手必购单品推荐(2020版)_智能家居...
  10. layui select change事件_一道2020年全国生物学联赛试题背后的“眼齿鸟事件”