`

Java, JVM, JRE, Java API, Java类库, 编译器, 解释器,

    博客分类:
  • JSE
阅读更多

 

Java,  JVM,  JRE,  Java API,  Java 类库 ,  编译器 ,  解释器 ,  JDK 帮助文档 --- 的一些理解 .


Java java 说它是一种语言还不如说它是一个平台

JRE  JRE Java 运行环境 (Java  Runtime Enviroment) 的缩写。它基本上就和Java 虚拟机是同一个概念。

一般说来,在谈论一个具体的产品的时候,可以说“JRE” ,而说到理论中的一个模型的时候,我们常用的是“Java 虚拟机

要使用Java 程序,JRE 是必不可少的环境。

Java API   没有 api 就没有 java   api 在这指的是 java 的类库!就是 jdk 里面的那些类

Java 类库   
类库一般 JAVA 中多数都是类库,通过调用包中的类。
来应用里面的内容,具体,偶也说不明白由软件开发商开发的 api
比如 mfc
或者 java 类库什么的
那是供开发人员使用的底层接口

JVM    Java Virtual Machine Java 虚拟机),它是一个虚构出来的计算机 , 是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java 虚拟机有自己完善的硬件架构 , 如处理器、堆栈、寄存器等 , 还具有相应的指令系统

JDK 帮助文档   jdk 帮助文档是让你查 API 的工具

 

 

 



我们可以通过helloworld 来理解这几个缩写词的具体含义:

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



编译之后, 我们得到了HelloWorld.class (图中的"Your program's class files"
HelloWorld 里面, 我们调用了 JAVA API 中的 java.lang.System 这个类的静态成员对象 out, out 的静态方法: public static void println(String string);

然后我们让虚拟机器来执行这个HelloWorld
1.
虚拟机会在classpath 中找到HelloWorld.class
2.
虚拟机中的解释器(interpret) 会把HelloWorld.class 解释成字节码。
3.
把解释后的字节码交由execution engin 执行。
4. execution engin
会调用native method( 即平台相关的字节码)来在host systemstdout( 显示器) 的指定部分打印出指定的字符串。
5.
这样, 我们就看到"helloworld" 字样了。

有了这个流程后, 我们就好理解上面几个术语了:
a. JDK: java develop kit (JAVA API
)
b. SDK: software develop kit,
以前JDK 叫做java software develop kit , 后来出了1.2 版本后, 就改名叫jdk 了, 省时省力, 节约成本。
c. JRE. java runtime environment
我们的helloworld 必须在JRE(JAVA 运行环境,JAVA 运行环境又叫JAVA 平台)里面, 才能跑起来。 所以, 显然地, JREJRE 顾名思义只是java class 运行时需要的环境,JDK 不仅包含了JRE ,还提供了开发调试java 程序需要的工具 。

d. JVM java virtual machine.
简单地讲, 就是把class 文件变成字节码, 然后送到excution engin 中执行。 而为什么叫虚拟机, 而不叫真实机呢? 因为JVM 本身是又不能运算, 又不能让显示器显示"helloworld" 的, 它只能再调用host systemAPI , 比如在w32 里面就会调c++API , 来让CPU 帮他做做算术运算, 来调用c++ 里面的API 来控制显示器显示显示字符串。 而这些API 不是JDK 里面有的,我们平时又看不见的,所以我们就叫它native api 了(亦曰私房XX )。

e.
解释平台无关。 有人会说, 在linux 的里面调用native apiw32 里面调用的api 肯定不一样吧? 那为什么说JAVA 是平台无关的呢?
其 实是这样的, 君不见java.sun.com 里面又有jdk-for-w32 又有jdk-for-linux 下载吗? 刚才不是说了吗? native api, native api, 就是我们平时看不见的api 吗! 调用native 这些烦琐的活儿都让jdk 去做了。 所以我们调用的时候只用知道jdk(java api) 里面的java.io.* 能提供磁盘访问功能, java.awt.* 能画个框框画个圆圆就行了吗。 至于JDK 又是怎么调用的, 在LINXU 上更圆呢? 还是在W32 上更圆,(x) 这个就是JDK 个人的事情了。(理论上讲是一样圆的, 当然这又和显示器是否纯平相关了:D)

同时, 这里就引申出了另一个话题。 既如何编写平台无关的JAVA 程序。 其中关键的一条, 就是调用且只调用jdk 中的API , 而不要私自调用native api 。 原因很简单啊, JDK-for-linuxJDK-for-w32 表面都是一样的, 所以我在w32 里面调用JDK 写的java 程序,在linux 里面也会一样的写法啊, 所以就可以移植来移植去都没问题。(b) 但是如果我在w32 里面调用了 一个图形显示的native api, 当我移植到linux 去的时候, 谁又能保证里面也有相同名称, 相同参数,相同返回值, 相同功能的native api 供我调用呢!(?)

Java 中引入了虚拟机的概念,即在机器和编译程序之间加入了一层抽象的虚拟的机器。这台虚拟的机器在任何平台上都提供给编译程序一个的共同的接 口。编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换为特定系统的机器码执行。在 Java 中,这种供虚拟机理解的代 码叫做字节码( ByteCode ),它不面向任何特定的处理器,只面向虚拟机。每一种平台的解释器是不同的,但是实现的虚拟机是相同的。 Java 源程序经 过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上 运行。
  
  可以说, Java 虚拟机是 Java 语言的基础。它是 Java 技术的重要组成部分。 Java 虚拟机是一个抽象的计算机,和实 际的计算机一样,它具有一个指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。 Java 解释器负责将字节代码翻译成特定机器的机 器代码。 Java 是一种简单的语言。它用到的概念不多,而且多为程序员所熟悉。如果你是一名程序员,掌握 Java 对你来说是易如反掌的事。即使你没有学过 任何编程语言,学习 Java 也要比学习 C++ 要容易的多

 

jre Java RunTime Envirment 的简称, Java Runtime Environment (包括 Java Plug-in )是 Sun 的产品,包括两部分: Java Runtime Environment Java Plug-in
Java Runtime Environment(JRE)
是可以在其上运行、测试和传输应用程序的 Java 平台。它包括 Java 虚拟机、 Java 平台核心类和支持文件。它不包含开发工具 -- 编译器、调试器和其它工具。 JRE 需要辅助软件 -- Java Plug-in -- 以便在浏览器中运行 applet

Java Plug-in
软件允许 Java applet JavaBeans 组件在使用 Sun Java Runtime Environment (JRE) 的浏览器中运行,而不是在使用缺省的 Java 运行环境的浏览器中运行。 Java Plug-in 可用于 Netscape Navigator Microsoft Internet Explorer



主意它之间的想包含关系

  • 大小: 5.6 KB
  • 大小: 45.8 KB
分享到:
评论

相关推荐

    Java Runtime Environment JRE 1.4.2

    其次,JRE包含了Java核心类库,这些库提供了丰富的API,覆盖了网络通信、I/O操作、多线程、图形用户界面(GUI)、数据库连接、XML处理等众多领域。在JRE 1.4.2中,这些API进一步完善,例如,NIO(New I/O) API的...

    java,jdk1.8,jre1.8

    JDK 1.8是Oracle公司发布的Java 8版本,其中包含Java编译器(javac)、Java虚拟机(JVM)、Java类库以及开发者工具如Javadoc(用于生成API文档)和JConsole(用于监控Java应用性能)。这个版本引入了一些重要的特性...

    java jdk jre8

    它包含了Java编译器(javac)、Java虚拟机(JVM)、Java类库以及各种工具,如Javadoc(生成API文档)和JAR(打包工具)。JDK是Java程序员日常工作中不可或缺的部分,因为它提供了编写、测试和调试Java代码所需的一切...

    java1.8版本,jre,jfx

    JRE是运行Java应用程序所必需的环境,它包含了Java虚拟机(JVM)、类库和其他必要的组件,但不包括开发工具。用户可以下载并安装JRE来运行基于Java 8的应用程序,而开发者则需要JDK来进行编码和调试。 在Java 8中,...

    jdk、jre、jvm的区别

    1. **字节码解释执行**:JVM负责读取并解释执行由Java编译器生成的字节码文件。 2. **内存管理**:JVM自动管理程序运行时的内存分配和垃圾回收。 3. **平台独立性**:通过将Java代码编译为通用的字节码,而不是特定...

    大数据必学Java基础(九):JDK,JRE,JVM的区别

    1. JDK(Java Development Kit):Java开发工具包,是Java开发人员必备的软件,包含了编译器(javac)、JRE、调试器、文档生成工具、打包工具等。它提供了编写、编译、测试和部署Java应用程序所需的所有工具。 2. ...

    Java中JDKJRE和JVM解析.doc

    以及一系列的库文件和API,如Java标准类库。JDK是跨平台的,这意味着它可以用于不同的操作系统,如Windows、Mac和Unix。随着技术的发展,JDK的版本不断更新,例如,提到的1.7版本,也就是Java 7。 Java虚拟机(JVM...

    java8u311,jdk,jre

    其中包括 Java 编译器(javac)、Java 运行时环境、Java 类库、开发工具(如 JConsole、JVisualVM)以及其他相关工具。JDK 的核心是 JVM(Java Virtual Machine),它负责解释和执行 Java 字节码,使得代码能够在...

    java jdk jre 资源信息

    2. **Java解释器(java)**:运行编译后的Java字节码,负责在Java虚拟机(JVM)上执行程序。 3. **Java文档生成器(javadoc)**:用于自动生成API文档,帮助开发者理解类库的使用方法。 4. **Java打包工具(jar)**...

    java环境中的JDK、JVM、JRE详细介绍

    它包括Java运行环境(JRE),一套Java工具(如javac编译器、java命令行解释器、jdb调试器等),以及Java API类库,这些类库使得开发者能够访问Java的各种功能和类。JDK分为三个版本:标准版(Java SE)、企业版...

    Java 8 版本371 Windows 64位运行环境(JRE)

    这个安装文件会提供Java运行时环境,包括Java虚拟机(JVM)、Java类库以及其他支持Java应用程序运行的组件。一旦安装完成,用户就可以运行基于Java的应用,如Web应用程序、桌面应用以及游戏等。 总的来说,Java 8...

    JRE java运行环境

    JDK是Java编程工具的集合,除了包含JRE外,还提供了编译器javac、反编译器jdb、性能分析器jmap、JVM诊断工具jinfo等一系列开发和调试工具。开发者通常需要JDK来进行代码编写、编译、打包、测试以及调试等工作。 在...

    jdk8下载快,十分好用,Java,jvm,jre

    3. **Java运行时环境**(JRE):JRE是运行Java应用程序所需的最小环境,包括JVM和Java核心类库。 4. **Java文档生成器**(javadoc):用于自动生成API文档。 5. **Java调试工具**(JDB):帮助开发者调试Java程序。 ...

    java运行环境jre

    JRE包含了Java虚拟机(JVM)、类库以及其他必要的组件,使得计算机系统能够理解并运行.java源代码编译后的.class字节码。 在Java开发过程中,程序员通常使用Java Development Kit (JDK) 进行编码、编译,而JRE则是...

    JRE精简版java虚拟机

    开发者编写的源代码通过编译器转化为Java字节码,然后由JRE中的JVM负责解释执行。为了确保软件能在用户的计算机上顺利运行,开发者需要提供与项目开发时相同版本的JRE,或者保证用户系统已经安装了兼容的JVM。JRE...

    jre6 java

    Java运行时环境(JRE)是执行Java应用程序所必需的基础组件,它包含了Java虚拟机(JVM)、类库以及其他的Java运行所需的支持文件。在本例中,我们关注的是JRE 6,这是一个历史悠久但仍然受到许多用户青睐的版本。JRE...

    windwos java jre8 64位 jre-8u371-windows-x64

    Java运行环境(Java Runtime Environment,简称JRE)是运行Java应用程序所必需的软件组件,它包含了一组由Java虚拟机(JVM)和Java平台核心类库组成的执行环境。在本例中,我们讨论的是针对Windows操作系统的64位...

    java8开发环境、运行环境包含jdk8和jre8

    JDK是用于开发和调试Java应用程序的工具集,它包含了JRE以及一些开发工具,如编译器(javac)、解释器(java)、Javadoc(生成API文档)和JDB(Java调试器)。在Java 8中,JDK 1.8.0_181是一个特定的更新版本,它...

    Java jre文件。zip

    6. **性能优化**:JRE随着时间的推移不断优化,包括更高效的垃圾回收算法、更快的字节码解释器以及即时编译器(JIT),这些都显著提高了Java应用程序的运行速度。 7. **国际化支持**:Java JRE提供了强大的国际化...

Global site tag (gtag.js) - Google Analytics