Java运行时环境(JRE)
Java是一种面向对象的编程语言,由Sun公司(现在已被Oracle收购)创造和开发。Java编译器可将Java源代码编译成Java 字节码(即.class文件),但是这些字节码需要运行在Java虚拟机(JVM)上,因此,JRE也是必不可少的。JRE是Java SE API的实现,它包括了Java虚拟机,Java类库和其他的组件。
Java虚拟机
Java虚拟机是JRE的核心组件。它是一种基于堆栈的处理器,它提供了Java字节码的执行环境。Java虚拟机有一个内存区域,被分为方法区、堆栈和本地方法栈,每个线程都在自己的堆栈上运行代码。Java虚拟机的作用是解释和执行Java字节码,并将其翻译成本地代码,以实现跨平台的目的。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
在Java虚拟机上运行以上代码会输出“Hello, World!"
Java类库
Java类库是JRE的另一个重要组成部分。它包括了大量的类和接口,可以在Java应用程序中进行调用。Java类库被组织成一个包层次结构,每个包包含了一组相关的类和接口。所有的Java API类都被装入包中,这些包被称为Java API包。例如,Java基本库就是由java.lang、java.util、java.io等包组成的。
import java.util.HashMap;
public class MyHashMap {
public static void main(String[] args) {
HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
hashMap.put("Alice", 25);
hashMap.put("Bob", 26);
System.out.println(hashMap);
}
}
在Java类库中使用HashMap实现键值对映射,可以输出{"Alice"=25, "Bob"=26}
其他组件
JRE还包括了其他一些组件,例如Java Plug-in和Java Web Start。Java Plug-in用于在浏览器中运行Java Applet,而Java Web Start则用于向终端用户发布Java应用程序。这些组件使得Java程序可以更加方便地在各种平台上使用。
JRE与JDK的区别
Java开发者套件(JDK)是Java开发所必需的一部分,它包括了Java编译器、Java类库、Java工具和Java文档等。JRE和JDK的最大区别是JDK包含了JRE,因此JDK可以用于编写和运行Java程序,而JRE只能用于运行Java程序。
例如,在JRE中无法使用javac编译器,而在JDK中可以:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
使用JDK中的javac编译器编译以上代码:
$ javac HelloWorld.java
在JRE中运行该代码:
$ java HelloWorld
Hello, World!
总结
Java运行时环境(JRE)由Java虚拟机、Java类库和其他组件组成,它提供了Java应用程序的运行环境。与之相比,Java开发者套件(JDK)包含了JRE,还包括了Java编译器、Java工具和Java文档等,用于Java应用程序的编写和运行。