打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java代码在我们计算机上是如何运行的?

“当控制输出Hello world ! 的时候,代码在计算机内部经历了什么?Java代码在我们计算机上到底如何运行的?”

1.cmd运行.java文件

javac是java语言编程编译器。全称java compiler。

a.查看电脑上是否有Java的环境。

b.输入命令:javac Test.java编译过程。

注意:文件名和类名完全一致。

2. .java文件执行完毕生成.class文件

a.运行.class文件输入:java Test

运行报错:

经过一番百度错误原因:高版本的JDK编译的Java class文件在较低版本的JVM上运行,就会报此错误。

小编很慌张

查看了一下JDK的版本:

cmd->java -version:

果然不一样。果断下载java version 1.8。

成功运行:

3.JVM的作用

什么是JDK、JVM、JRE

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。

JVM(Java Virtual Machine),Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行,所以Java能够“一次编译,到处运行”。

JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。

4.Java代码的变异过程

编译原理。

此图来源及以下内容来源:

https://blog.csdn.net/fuzhongmin05/article/details/54880257

词法分析:读取源代码,一个字节一个字节的读进来,找出这些词法中我们定义的语言关键词如:if、else、while等,识别哪些if是合法的哪些是不合法的。这个步骤就是词法分析过程。从源代码中找出了一些规范化的token流,就像人类语言中,给你一句话你要分辨出哪些是一个词语,哪些是标点符号,哪些是动词,哪些是名词。

语法分析:就是对词法分析中得到的token流进行语法分析,这一步就是检查这些关键词组合在一起是不是符合Java语言规范。如if的后面是不是紧跟着一个布尔型判断表达式。形成一个符合Java语言规定的抽象语法树,抽象语法树是一个结构化的语法表达形式,它的作用是把语言的主要词法用一个结构化的形式组织在一起。这棵语法树可以被后面按照新的规则再重新组织。

语义分析:语法分析完成之后也就不存在语法问题了,语义分析的主要工作就是把一些难懂的,复杂的语法转化成更简单的语法。就如难懂的文言文转化为大家都懂的百话文,或者是注释一下一些不懂的成语。将复杂的语法转化为简单的语法,对应到Java就是将foreach转化为for循环,还有一些注释等。最后生成一棵抽象的语法树,这棵语法树也就更接近目标语言的语法规则。

字节码生成:将会根据经过注释的抽象语法树生成字节码,也就是将一个数据结构转化为另外一个数据结构。就像将所有的中文词语翻译成英文单词后按照英文语法组装文英文语句。代码生成器的结果就是生成符合java虚拟机规范的字节码。

说明:设计编译原理和JAVA虚拟机,我了解的不多,还得继续学习呀。谢谢大家。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
大白话聊聊编译那点事儿
JVM真香系列:.java文件到.class文件
C/C++、Java由源码到机器码的过程(编译原理)
开发者应知道的编译原理和语言基础知识
java回顾(1)------Java语言的运行机制
JVM JRE JDK解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服