- 浏览: 409777 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
dageda_jgw:
...
JSF定义及原理 -
尘土飞扬:
这个在NB7中已经无效了,加不加都会提示 UTF8打不开
Netbeans统一UTF-8编码的方法 -
ouyangkang20:
不对
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f) -
wpf523:
hahah,很不错啊
mysql安装图解教程 5.1 -
taburissmeng:
action中相应的属性没有set get方法就会报这样的错。 ...
Struts target is null for setProperty(null, "x", [Ljava.lang.String;@179da9f)
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 system
的stdout(
显示器)
的指定部分打印出指定的字符串。
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 system
的API
, 比如在w32
里面就会调c++
的API
,
来让CPU
帮他做做算术运算, 来调用c++
里面的API
来控制显示器显示显示字符串。 而这些API
不是JDK
里面有的,我们平时又看不见的,所以我们就叫它native api
了(亦曰私房XX
)。
e.
解释平台无关。 有人会说, 在linux
的里面调用native
api
与w32
里面调用的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-linux
和JDK-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
主意它之间的想包含关系
发表评论
-
如何获得JVM的最大可用内存
2010-06-26 17:47 2114在命令行下用 java -XmxXXXXM -version ... -
java程序的时间与系统时间不同
2010-04-15 21:43 1542实施软件时,windows时区、语言设置都正常,但java程序 ... -
java集合框架全面进阶
2009-05-22 20:07 1150java集合框架全面进阶 java集合框架全面进 ... -
Jsp+JavaBean教程
2009-05-22 18:50 3818按着Sun公司的定义,JavaBean是一个可重复使用的软件组 ... -
Java常用术语解释
2009-05-22 17:39 2333名词 解释 AAA ... -
Java面向对象概述
2009-05-22 17:23 1041(如今的程序领域,大家都在说,面向对象OOP,但是真正能理解 ... -
java入门与加深
2009-05-22 17:13 9551 什么是Java、Java2、JDK ... -
利用Java事件处理机制实现录制、回放功能
2009-05-22 17:04 1594利用Java事件处理机制实 ... -
数据类型
2009-05-22 17:00 1119【导读】Java 提供 ... -
java数据类型转换
2009-05-22 16:57 1185[收藏]java数据类型转换 一些初学JAVA ... -
Java异常学习心得
2009-05-22 16:47 1437Java 异常学习心得 本文重在 Java ... -
多线程
2009-05-22 16:26 2171JAVA 教程:解析Java 的多线程机制 ... -
哈希表
2009-05-22 16:23 1492哈希表的概念作用及意义,哈希表的构造方法 ... -
Java接口常用方法
2009-05-22 16:20 2866接口是实现构件可插入性的关键,可插入构件的关键在于存在一 ... -
一个简单的SWT程序实例及详解
2009-05-22 16:04 1767网易学院 一个 ... -
String的比较
2009-05-22 15:34 1330关于java中的equals() 悬 ... -
JVM(JAVA虚拟机介绍)
2009-05-22 15:30 1222JVM(JAVA虚拟机介绍) 来 ... -
如果安装了JDK,会发同你的电脑有两套JRE
2009-05-22 15:29 1443如果安装了JDK,会发同 ... -
文件选择对话框,颜色选择对话框,分隔线的使用与介绍
2009-05-22 15:12 2664文件选择对话框,颜色选择对话框,分隔线的使用与介绍 ++ ... -
根据CLASSPATH环境变量定位类
2009-05-17 17:47 2344实际上,如果使用1.5以上版本的JDK,完全可以不用设置CLA ...
相关推荐
其次,JRE包含了Java核心类库,这些库提供了丰富的API,覆盖了网络通信、I/O操作、多线程、图形用户界面(GUI)、数据库连接、XML处理等众多领域。在JRE 1.4.2中,这些API进一步完善,例如,NIO(New I/O) API的...
它包含了Java编译器(javac)、Java虚拟机(JVM)、Java类库以及各种工具,如Javadoc(生成API文档)和JAR(打包工具)。JDK是Java程序员日常工作中不可或缺的部分,因为它提供了编写、测试和调试Java代码所需的一切...
JRE是运行Java应用程序所必需的环境,它包含了Java虚拟机(JVM)、类库和其他必要的组件,但不包括开发工具。用户可以下载并安装JRE来运行基于Java 8的应用程序,而开发者则需要JDK来进行编码和调试。 在Java 8中,...
1. **字节码解释执行**:JVM负责读取并解释执行由Java编译器生成的字节码文件。 2. **内存管理**:JVM自动管理程序运行时的内存分配和垃圾回收。 3. **平台独立性**:通过将Java代码编译为通用的字节码,而不是特定...
1. JDK(Java Development Kit):Java开发工具包,是Java开发人员必备的软件,包含了编译器(javac)、JRE、调试器、文档生成工具、打包工具等。它提供了编写、编译、测试和部署Java应用程序所需的所有工具。 2. ...
以及一系列的库文件和API,如Java标准类库。JDK是跨平台的,这意味着它可以用于不同的操作系统,如Windows、Mac和Unix。随着技术的发展,JDK的版本不断更新,例如,提到的1.7版本,也就是Java 7。 Java虚拟机(JVM...
其中包括 Java 编译器(javac)、Java 运行时环境、Java 类库、开发工具(如 JConsole、JVisualVM)以及其他相关工具。JDK 的核心是 JVM(Java Virtual Machine),它负责解释和执行 Java 字节码,使得代码能够在...
JDK 1.8是Oracle公司发布的Java 8版本,其中包含Java编译器(javac)、Java虚拟机(JVM)、Java类库以及开发者工具如Javadoc(用于生成API文档)和JConsole(用于监控Java应用性能)。这个版本引入了一些重要的特性...
2. **Java解释器(java)**:运行编译后的Java字节码,负责在Java虚拟机(JVM)上执行程序。 3. **Java文档生成器(javadoc)**:用于自动生成API文档,帮助开发者理解类库的使用方法。 4. **Java打包工具(jar)**...
它包括Java运行环境(JRE),一套Java工具(如javac编译器、java命令行解释器、jdb调试器等),以及Java API类库,这些类库使得开发者能够访问Java的各种功能和类。JDK分为三个版本:标准版(Java SE)、企业版...
这个安装文件会提供Java运行时环境,包括Java虚拟机(JVM)、Java类库以及其他支持Java应用程序运行的组件。一旦安装完成,用户就可以运行基于Java的应用,如Web应用程序、桌面应用以及游戏等。 总的来说,Java 8...
JDK是Java编程工具的集合,除了包含JRE外,还提供了编译器javac、反编译器jdb、性能分析器jmap、JVM诊断工具jinfo等一系列开发和调试工具。开发者通常需要JDK来进行代码编写、编译、打包、测试以及调试等工作。 在...
3. **Java运行时环境**(JRE):JRE是运行Java应用程序所需的最小环境,包括JVM和Java核心类库。 4. **Java文档生成器**(javadoc):用于自动生成API文档。 5. **Java调试工具**(JDB):帮助开发者调试Java程序。 ...
JRE包含了Java虚拟机(JVM)、类库以及其他必要的组件,使得计算机系统能够理解并运行.java源代码编译后的.class字节码。 在Java开发过程中,程序员通常使用Java Development Kit (JDK) 进行编码、编译,而JRE则是...
开发者编写的源代码通过编译器转化为Java字节码,然后由JRE中的JVM负责解释执行。为了确保软件能在用户的计算机上顺利运行,开发者需要提供与项目开发时相同版本的JRE,或者保证用户系统已经安装了兼容的JVM。JRE...
Java运行时环境(JRE)是执行Java应用程序所必需的基础组件,它包含了Java虚拟机(JVM)、类库以及其他的Java运行所需的支持文件。在本例中,我们关注的是JRE 6,这是一个历史悠久但仍然受到许多用户青睐的版本。JRE...
Java运行环境(Java Runtime Environment,简称JRE)是运行Java应用程序所必需的软件组件,它包含了一组由Java虚拟机(JVM)和Java平台核心类库组成的执行环境。在本例中,我们讨论的是针对Windows操作系统的64位...
JDK是用于开发和调试Java应用程序的工具集,它包含了JRE以及一些开发工具,如编译器(javac)、解释器(java)、Javadoc(生成API文档)和JDB(Java调试器)。在Java 8中,JDK 1.8.0_181是一个特定的更新版本,它...
6. **性能优化**:JRE随着时间的推移不断优化,包括更高效的垃圾回收算法、更快的字节码解释器以及即时编译器(JIT),这些都显著提高了Java应用程序的运行速度。 7. **国际化支持**:Java JRE提供了强大的国际化...