java代码执行过程简介

代码即数据,数据即代码,而我们的数据是保存在文件上的,所以我们说文件就是数据,一切代码都是文件。

比如说java语言的源代码文件.java文件里的数据,java源代码文件里的数据遵循家把语言规范。

经过一个jdk中的javac程序(编译器),把.java文件映射转换成了.class 文件格式,里边保存的数据code,我们称之为jvm bytecode,遵循class文件协议。

jdk中还有一个程序叫java,这个程序就是操作系统上可执行的java命令,然后它的输入参数是.class文件。它内部的执行大致过程是先读取这个文件内容并校验,然后加载了它的内存中,可能存在数组里或者存在某些数据结构里面,然后解释分析这些字节码,最后输出对应的机器代码。

最后一步就是执行机器代码,输出响应结果。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Pythonista

记录java版本不兼容的坑,(kafka运行报错)

我的kafka是1.8java环境下的,所以卸载1.7java,安装最新的java1.8

44820
来自专栏我的技术专栏

vi 方向键和Backspace键失效问题的解决方法

10820
来自专栏Java成神之路

Oracle_Exception_01_The Network Adapter could not establish the connection

端口号错误:一般不会错误但可能使用多个oracle版本,导致端口号为1521的情况。  修改为正确的端口号,执行下面第2步。   

8920
来自专栏IT可乐

Linux系列教程(八)——Linux常用命令之压缩和解压缩命令

  前面一篇博客我们讲解了Linux帮助和用户管理命令,对于帮助命令,man 命令能获得命令和配置文件的帮助信息,help命令能获得shell内置命令的帮助信息...

21880
来自专栏不想当开发的产品不是好测试

Git 默认不区分大小写

背景: 通过代码规范,修改了包名为全小写(修改了文件夹目录),但发现push后,git服务器的文件夹目录还是为大写 解决方法: git默认是不区分大小写的,意思...

223100
来自专栏lgp20151222

…… are only available on JDK 1.5 and higher 错误(spring 的jdk版本检测在jdk 8下的修订)

1、在项目中创建一个package为org.springframework.core 2、在该package下面新建JdkVersion.java,内容如下...

32110
来自专栏人工智能LeadAI

Python中的相对文件路径的调用

先让我们来看看一个用到相对文件路径的函数调用的问题。假设现在有两个脚本文件main.py和func.py,他们的路径关系是:

19440
来自专栏大闲人柴毛毛

Linux目录管理全面掌握

路径符号 . 当前目录 .. 上一层目录 - 前一个目录 ~ 当前账户的主文件夹 ~chai chai这个账户的主文件夹 目录处理命...

300120
来自专栏coding

linux批量将文件编码由gbk转成utf8

76340
来自专栏Modeng的专栏

Mac 电脑如何卸载 node

版权声明:本文为原创文章发布于公众号:Modeng , 你可以随意转载但请务必注明出处!!! https://blog.csdn.net/qq_3213528...

38630

扫码关注云+社区

领取腾讯云代金券