Java类库和JVM

时间:2015-03-16 13:48:15

标签: java jvm

我对JVM架构有点困惑。我们可以说Java类库JCL是Java虚拟机JVM的一部分吗?

5 个答案:

答案 0 :(得分:2)

根据JVM specification

  

Java虚拟机是一个抽象的计算机... [其中]   对Java编程语言一无所知。

JCL是实现Java语言的必要条件。

因此,您可以使用JVM来实现您选择的任何language,并且可以在任何合适的体系结构上运行Java程序。例如,Android可以在Android Runtime(ART)上运行用Java编写的程序。

答案 1 :(得分:1)

JVM (Java虚拟机)是 JRE (Java运行时环境)的一部分。

JCL (Java库类)也是 JRE 的一部分,就像其他API一样。

答案 2 :(得分:0)

根据定义,JCL是Java应用程序(而不是JVM)在运行时可以调用的库,我认为这是JRE的一部分。

答案 3 :(得分:0)

我知道这已经得到了回答,但我觉得我应该添加一些解释来支持已经提出的一些观点:

JVM :执行字节代码, JCL 提供动态可加载的运行时库,由JVM执行的java代码使用。

JRE至少需要运行java程序,JRE由JVM和JCL组成

JVM :它是一个应用程序虚拟机,能够运行字节代码并对主机操作系统执行。

Java :简单来说,Java是一种高级编程语言。它可以转换为字节代码,最终可以在JVM上运行。

字节代码:为了生成字节代码,我们需要一个能够摄取源代码并生成字节代码的编译器。

字节码编译器:从理论上讲,字节码编译器能够获取大多数现代语言的任何源代码(例如python,ruby,groovy等)并生成字节码,前提是编译器已经实施了这样做。另一种可能的实现是将程序的源代码转换为java然后调用java字节码编译器将生成的java程序转换为字节代码,这就是jythonc的情况,它采用python源代码并将其转换为java然后将java代码最终转换为字节码。字节码编译器的例子是上面描述的javac。

总之,JVM能够运行任何语言,只要有语言程序源代码的编译字节代码版本。

JCL(Java类库):Java类库是java程序,什么操作系统可重用的Dll库是本机应用程序。这使得用java编写的程序可以调用通常由Os本机库公开的操作系统/硬件功能/例程。 JCL通过提供对本机函数(如网络,io,本机GUI等)的访问,从本机库的implmentation细节中抽象出java程序。

答案 4 :(得分:0)

密切注意语言可能在这里效果最好。

JVM是一种虚拟机,因此您可以将其视为近似于物理机器的东西,如笔记本电脑,台式机或手机。物理机器允许您运行计算机程序,虚拟机也是如此。

JCL是一个软件库,可帮助您在该计算机上运行自己的程序。它类似于您的物理计算机上存在的库,这些库由您的操作系统和该物理计算机上安装的各种程序使用。您的代码也使用了随机提供的现有代码,它们共同构成了在该机器上运行计算机程序所需的所有代码。