大家好,又见面了,我是你们的朋友全栈君。
这一篇我们来简单理解一下JAVA的运行机制
大概可以分为三大部分
1.编写程序
2.编译程序
3.运行程序
1.编写程序
编写程序就是我们前面说的源代码
这些源代码都有特殊的语法
例如main函数
他是jdk中一个比较特殊的函数
他必须要使用特定的语法来编写
(在前面加上 public 等关键字来修饰)
源代码就像是程序的灵魂,
程序的实现是由源代码来就决定的
就像一块橡皮泥,
你想把它变成什么样子完成由你来决定
2.编译程序
为什么要编译?
因为 JAVA和大多数语言一样是一种高级语言
我们编写好的代码都被保存成为一个.java的文件
然而我们计算机并不认识(不能运行)这些文件
这就需要把我们编写好的文件(源代码)变成计算机可以运行的机器码(二进制码)
这个过程就叫做编译
注意:编译就是我们前面用到的 javac 命令
它可以将.java文件编译成一个.class文件(字节码)
并且class文件是一种与平台无关的文件
3.运行程序
上面说到把源代码编译成字节码。
那么就到运行字节码了
其实我们的JAVA语言有一个非常大的特点就是跨平台
用他们话说就是:一次编译,到处运行
前面说过class文件是一种与平台无关的文件
它也不可直接运行
那我们怎么运行呢?
这就要讲到一个东西jvm(JAVA虚拟机)
它可以将我们的class文件解释成计算机可以运行的二进制
那我们的jvm是如何运行的呢
我们都知道所有程序只有在内存中才能运行
所以我们在运行JAVA文件的时候(java命令)
首先会在内存中创建一个jvm
然后把硬盘里的class文件加载进来
利用jvm去解释这些class文件
最后运行程序。
PS:为什么说JAVA跨平台
1.因为编译后的class文件只能被jvm所解释
2.任何平台只要有jvm(JAVA运行环境)就可以解释这个class文件
3.无论什么平台解释同一个class文件最后的结果都是一样的
也就是说我用Windows系统编译好的class文件,拿来Android(前提要有环境)上运行也是一样的
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156329.html原文链接:https://javaforall.cn