Java 开发流程、运行原理、半编译半解释、平台无关性

目录

Java 开发流程

Java 运行原理

半编译半解释

平台无关性


当年 sun 公司是这么定义 Java 的:

Java 是一种 简单、面向对象、分布式、跨平台、半编译半解释、健壮、安全、高性能、多线程的动态语言。

Java 开发流程

1、如下所示在 E:/Study_Note/test 目录下新建一个 HelloWorld.java 源文件。HelloWorld.java 源文件中输出一句话,同时引用了 JDK 的 API java.util.Date() 打印一下日期。

2、使用 javac *.java 编译源代码,此时如果源代码正确,则默认会在当前目录下自动生成编译好的二进制文件 *.class

import java.util.Date;
/**
 * Created by Administrator on 2019/3/29 0029.
 */
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World "+ new Date());
    }
}

注意事项:

1、java 命令后面接的是字节码文件(*.class)的类名,且不能带后缀名 .class,否则会报错,*.class 可以放到任意其它位置使用 java 命令执行,不再与 *.java 源码有关

2、java 、javac 命令不是凭空出来的,而是安装好 Java JDK 后,在 %JAVA_HOME%/bin 目录下提供的,而且其中还提供了其它很多命令,如常用的还有 javaw.exe、javafxpackager.exe 等等。

3、所以要想在 cmd 中直接调用 java、javac 等命令,必须先配置好 Java 环境变量,否则只能输命令的全路径。

3、这里所说的开发流程是 Java 开发的底层流程,实际中显然不会这么写 java 源代码,也不会到 cmd 中自己来 javac 编译源文件,然后 java 命令执行字节码文件,而是使用 IDEA 、Eclipse 等工具编写,但需要明白的是这些工具底层也是这么操作的。

Java 运行原理

JVM(Java Virtual Machine)-Java 虚拟机:

1、JVM 是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。

2、Java 虚拟机有自己完善的硬件架构,如处理器、寄存器、堆栈等,还具有相应的指令系统

半编译半解释

 1、系统(编译器)先将用户输入的指令翻译成一种通用的,比较规则的中间形式的代码(*.class),保密性强,运行时则由所在机器(JVM)的解释器进行解释执行。

 2、java 语言的开发效率高,但执行效率低。(相当于c++的55%)

平台无关性

1、所谓平台:即一套特定的硬件再加上运行的操作系统(硬件+软件)。编程语言对不同平台的支持有所不同。(如 VB、C/C++、Java...)

2、Java 完全不用修改任何源代码,也不用重新编译就可以将 Java 应用从一个平台直接移植到其它平台。

3、不同平台的内存管理模式和CPU的指令集等都有很大的差别,为了让 Java 实现平台无关性,Sun 公司在不同平台上用软件模拟出虚拟目标机(JVM),虚拟出CPU指令集和内存。

4、Java 平台无关性的关键在于 JVM,所有的字节码(*.class)就是在虚拟出的目标机(JVM)上运行,不会和平台的底层直接打交道。

5、JVM 根据平台的不同,把字节码解释成不同的本地代码(如上图),JVM 就像翻译,把通用的普通话翻译成不同地方的特色方言。

6、Java 的平台无关性给程序的部署带来了很大的灵活性,节约开发和升级成本。但是也有一个缺点:Java代码必须经过JVM解释才能运行,使得Java运行效率相比C++等语言要低很多。

7、WORA:Write Once,Run Anyhere(一次编写,到处运行)

猜你喜欢

转载自blog.csdn.net/wangmx1993328/article/details/88883429