给女朋友讲解java程序是怎么运行的
- 背景
- 进入正题
- 那么问题来了?
- 为什么run 一下就能运行 ?
- .java文件如何才能被jvm识别?
- JVM是如何加载到.class文件的?
- JVM加载到.class文件之后,是怎么运行的?
- 流程图如下。
背景
今天天气有点热,开着空调 写着代码,女朋友在一旁吃着西瓜,时不时喂我一口,看到我的代码兴致来了,然后说你这代码我也会写。然后把西瓜都给我,敲着键盘就写起来了。我一看,差点笑喷了。写了一行
Hello word
然后问我 这行代码怎么运行呀。既然女朋友发问了,那还不得好好表现表现。
进入正题
一般我们写代码都是在编译器写好的,像这种应用程序的代码 只需要写在main 函数里面然后右键run 就可以运行了。
那么问题来了?
为什么run 一下就能运行 ?
首先能运行自然是JVM的功劳,这里简单的理解jvm是java的运行环境
.java文件如何才能被jvm识别?
说到这 就得好好说说了。
首先我们看到的所写的和看到的都是.java文件
jvm要想加载这行代码必须把.java文件转换成.class文件才能被jvm所识别和加载,就像你要和一个不会说汉语的英国人交流,就必须把汉语转换成英语才能和他正常的交流。
那.java文件是怎么转换成.class文件的呢?这就是编译的魅力。
JVM是如何加载到.class文件的?
当我们把.java文件编译成.class文件 通过JVM的类加载机制 就能加载到。
JVM加载到.class文件之后,是怎么运行的?
这时候我们就需要用到JVM的字节码执行引擎来执行了。就像你写了个hello word在main() 方法里面 。执行的时候会从main()方法开始执行。
流程图如下。