计算机基础

什么是运行时(Runtime)

在计算机领域中,经常会接触到 runtime 这个概念,那么 runtime 究竟是什么东西?

runtime 描述了程序运行时候执行的软件/指令, 在每种语言有着不同的实现。可大可小,在 C 中,runtime 是库代码, 等同于 C runtime library,一系列 C 程序运行所需的函数,在 Java 中,runtime 还提供了 Java 程序运行所需的虚拟机等。

总而言之,runtime 是一个通用抽象的术语,指的是计算机程序运行的时候所需要的一切代码库,框架,平台等

任何语言要运行都需要自己的运行时,Java 程序的运行时叫 Java Runtime,Android 程序的运行时叫 Android Runtime,而具体 Runtime 是个什么东西呢,就是说一个程序要在一个硬件或者平台上跑,就必须要有一个中间层用来把程序语言转换为机器能听懂的机器语言。

简单来讲,就是程序运行时所需要的东西,它可能包含程序所需要的标准库,程序运行时需要的虚拟机,程序运行时被编译器插入的流程或代码,如垃圾回收,线程调度等。

运行时(runtime)是指程序代码在运行时期间的执行环境,也就是程序运行的时候计算机执行的状态和操作。在计算机科学领域中,通常将运行时与编译时区分开来。编译时是指将源代码翻译成计算机可以理解的机器代码的过程,而运行时则是指在计算机上运行程序的过程。

在程序执行期间,运行时会负责管理程序的内存、线程、异常处理、垃圾回收、动态链接等操作。它提供了一系列的库和服务,以便程序可以在运行时期间调用这些服务完成自己的功能。例如,Java程序在运行时期间会使用Java虚拟机(JVM)提供的库和服务,如JVM的垃圾回收机制、线程管理等,来执行Java程序的代码。

Java Runtime 的左右就是如此,如我们编写好了 Java 的 Hello World 程序,

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

代码我们认识,作用就是输出一个 “hello world”,但是要在一个冷冰冰的机器上,让机器能读懂并运行这段代码,就需要一个 Java 语言的运行时环境,只有这个环境才能读懂它,并能让代码更机器进行打交道。

到这里我们已经明白,如果一个电脑要能运行 Java 程序就必须安装有 Java Runtime。对于其他语言也是如此,要在平台上运行就必须要有对应平台上的 Runtime 组件,这也是开发一个新语言必须要做的事。

说道 Runtime,在 Java 发展的过程中,Java 一下子火了有一个很重要原因,就是在 90 年代,微软的 IE 浏览器为了打败网景浏览器,曾经就在 IE 中默认安装 Java 运行时,再加上 IE 浏览器内置在 Windows 操作系统中,使得 IE 装机量特别大,同样这对 Java 也是一个非常大的促进作用。由于 IE 内置 Java Runtime,使得在 IE 浏览器中开发 Java 程序变得更加简单。如出名的 Java Applet(Java 小程序)开发。

后来因为 Sun 跟 微软之间诉讼等事情,这个合作也没多久,现在 IE 已经默认禁用了 Java Applet。

说道 Java Runtime(简称 JRE) ,曾经在一开始开发 Java 程序时,经常把 JRE 跟 JDK 搞混。

JRE 是一个独立的东西,就是 Java 程序的运行环境,其中包含一个 JAVA 虚拟机(JVM)以及一些标准的函数类库。

而 JDK 是 Sun 公司专门给开发人员准备的 Java 开发工具集。它其中就包含了 JRE,所以配置好 JDK,自然就可以在电脑上运行 Java 程序了。除此之外,JDK 还包含了源码、API 文档、编译工具等等。