HelloWord以及Java程序运行原理

第一个Java程序,HelloWorld

创建文件 HelloWorld.java(文件名需与类名一致)

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

运行

$ javac HelloWorld.java
$ java HelloWorld
Hello World

执行命令解析:
以上我们使用了两个命令 javacjava

javac 后面跟着的是java文件的文件名,例如 HelloWorld.java。 该命令用于将 java 源文件编译为 class 字节码文件,如: javac HelloWorld.java。

运行javac命令后,如果成功编译没有错误的话,会出现一个 HelloWorld.class 的文件。

java 后面跟着的是java文件中的类名,例如 HelloWorld 就是类名,如: java HelloWorld。

注意:java命令后面不要加.class。

Java程序是如何运行的

这里需要提到三个概念:

JVM(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明。

JRE(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。

JDK(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。

三者为嵌套关系:JDK>JRE>JVM

C和C++是偏底层的语言,是可以直接操作内存的,直接和操作系统交互。而Java不与操作系统直接交互,而是先通过jvm处理Java程序,由jvm和操作系统交互。这样避免了直接操作内存所带来的风险,也实现了内存自动回收。

同时由于C和C++直接和操作系统交互,所以无法实现跨平台,在windows上写的c程序在其他平台是无法运行的。而Java通过在不同的操作系统上使用不同的jvm使得同一段Java程序可以在不同的操作系统上运行。
在这里插入图片描述
一个Java源程序比如HelloWorld.java,通过javac命令编译成HelloWorld.class文件,即字节码文件。字节码还不是最终的机器代码,而是通过jvm进行解释并执行的。jvm作为字节码与机器代码之间的桥梁,使得同样的字节码可以在不同的操作系统上运行,字节码是与平台无关的,但是jvm是与平台相关的,也就是说不同的平台上的jvm是不同的。通过这种方式,Java实现了跨平台。

参考:

1.菜鸟教程
2.小白的Java自学课

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值