学习目标
重点理解以下内容:
1、一段“helloworld”代码从你写出来,到最后执行,分别存储在哪些地方?
2、说说你认识的硬盘以及内存,理解“代码是保存在硬盘里面”这句话
3、一段java代码要想运行,必须具备什么条件?
4、Java的跨平台是怎么回事?为什么可以跨平台?
5、什么是编译,什么是解释?
程序编写和执行,分别在哪里
HelloWorld.java文件
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
上述编写的 HelloWorld.java,就像我们平时写的word文件一样,编写完,然后ctrl+s,会保存到硬盘上。高大上一点的词汇是代码持久化存储。java程序执行过程
java文件编译成class文件,这两个文件我们肉眼可以看到。HelloWorld.java通过javac命令把java文件编译成class文件。编译和执行都需要把程序装载进内存,其中编译JVM还生成了一个class文件。执行的时候,把class文件加载进内存,由CPU读取指令执行。
计算机组成原理中告诉我们,计算机由输入设备、输出设备、存储设备、运算器和控制器组成。
我们通过键盘(输入设备)编写代码,保存到硬盘上(输出设备、存储设备)。执行代码的时候又用到了运算器和控制器。
java运行条件
java程序要运行,必须要有执行的环境。计算机只认识0和1,要想代码执行,必须生成相应的指令。
java执行依赖操作系统,JVM。java是跨平台语言,就是你写的程序不仅可以在windows上执行,也可以在mac上执行。这主要靠JVM来搭桥。
java跨平台
java跨平台主要是JVM的功劳。先人们为了我们码农方便,给我们程序员整了个这东西,大大减轻了我们的劳动量,我们平时写代码,大部门在windows和苹果这种桌面化,不需要特别烧脑的系统上写代码。而我们写好的代码,到了实际上线时,大部分会部署在Linux系统,通过这个JVM,Linux系统也能够执行我们在windows和苹果系统编写的代码。是不是感觉很爽。
编译和解释
HelloWorld.java文件
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
编译和解释可以理解为都是翻译。只是执行阶段不同。java执行必须在JVM中,不同操作系统对应不同的JVM。编译就是把java文件翻译成class文件。解释则发生在执行阶段。java程序在执行的时候。是执行的class文件。
例如:HelloWorld.java这个文件。通过javac HelloWorld.java会生成HelloWorld.class文件。然后把HelloWorld.java删除。执行java HelloWorld。可以看到
HelloWorld可以执行。说明java最终执行的是class文件。执行的时候与 HelloWorld.java就没有任何关系了。



