Java中的一些名词术语

来源:互联网 发布:java并发实战 epub 编辑:程序博客网 时间:2024/05/17 22:05

学习Java有几个月了,记得刚学C语言的时候,谭浩强的那本绿皮《C程序设计》我来来回回至少看了六七遍,而现在这几本Java基础书我完整的连三遍都没看到,说是基础,一本书都七八百页,Java语言的知识点是要比C多了许多。今天把自己一直模糊不清的一些名词术语上网查了一下,因为现在还是初学,所以我想现在还不必太深究有的东西,但做一些了解还是必须的:

SDK:软件开发工具包。

JDK:就是Java的软件开发工具包,包括Java虚拟机(JVM),Java运行环境(即jre),Java工具(编译器,运行工具等)和Java基础类库等。

jre:Java运行环境。普通用户如果仅仅是要想运行Java程序则只装jre就可以了,不用装JDK(当然JDK中也包含了有jre)。它包括两部分:JavaRuntimeEnvironment和JavaPlug-in。JavaRuntimeEnvironment(JRE)是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机、Java核心类库和支持文件。它不包含开发工具--编译器、调试器和其它工具。JRE需要辅助软件--JavaPlug-in--以便在浏览器中运行applet。JavaPlug-in软件允许JavaApplet和JavaBeans组件在使用Sun的JavaRuntimeEnvironment(JRE)的浏览器中运行,而不是在使用缺省的Java运行环境的浏览器中运行。JavaPlug-in可用于NetscapeNavigator和Microsoft Internet Explorer。@@J2RE是Java2 Runtime Environment,即Java运行环境,有时简称JRE。


环境变量:我感觉是不是就可以理解为编程时的那种变量,包含了应用程序将要使用到的信息。环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。这点有点类似于DOS时期的默认路径,当你运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找。简单地说这里的“Path”就是一个变量,里面存储了一些常用命令所存放的目录路径。环境变量相当于给系统或用户应用程序设置的一些参数, 具体起什么作用这当然和具体的环境变量相关. 比如path, 是告诉系统, 当要求系统运行一个程序而没有告诉它程序所在的完整路径时, 系统除了在当前目录下面寻找此程序外, 还应到哪些目录下去寻找。


JVM:Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。是Java语言的运行环境。@@Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 @@@ Java的编译程序(即Javac 吧)把Java源文件编译成class文件即Java字节码文件,可以在虚拟机中运行,然后JVM会再将字节码转变成不同平台上的机器指令(?)。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。 @@@ Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。所以Java虚拟机是Java语言底层实现的基础,负责与操作系统进行交互。(JDK中的编译程序将Java源文件编译成字节码即class文件,然后JVM再将字节码文件转变成不同平台上的机器指令。所以你写的源程序不用改变就可以在不同的平台上运行,因为有虚拟机将其最终转变为不同平台上的机器指令)


Java的Classpath和Path:设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包。@@ Java执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的Java程序(后面会介绍到Java程序编译完成之后,会以.class文件存在)。如果将Java执行环境比喻为操作系统,如果设置Path变量是为了让操作系统找到指定的工具程序(以Windows来说就是找到.exe文件),则设置Classpath的目的就是让Java执行环境找到指定的Java程序(也就是.class文件)。@@@事实上JDK 5.0默认就会到当前工作目录(设置过的(?)),以及JDK的lib目录(这里假设是C:\Program Files\Java\jdk1.5.0_06\lib)中寻找Java程序。所以如果Java程序是在这两个目录中,则不必设置Classpath变量也可以找得到,将来如果Java程序不是放置在这两个目录时,则可以按上述设置Classpath。|||||||||path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方。一般是jdk的bin目录。classpath 类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类,或者理解为class文件的存放路径


在网上找的关于JDK内容的详细解释:

一:bin:(是JDK安装目录下的bin文件,jre中也有一个bin文件。)
JDK中所包含的开发工具的可执行文件,PATH环境变量应该包含一个指向此目录的项。书中是这样说的:一些命令行

工具,包括Java编译器的启动命令。(我打开JDK下的bin目录,发现里面都是.exe文件,有个别.dll文件,这些都是

Windows下的可执行文件,所以在Linux系统下这个目录下也应该是Linux系统的可执行文件吧)
二:lib:
开发工具使用的文件。里面有个tool.jar,它包括支持JDK的工具和实用程序的非核心类。里面还有个dt.jar,它是

BeanInfo文件的DesignTime归档,BeanInfo文件用来告诉交互开发环境〔IDE〕如何显示Java组件以及如何让开发人

员根据应用程序自定义它们。
书中解释:除去jre中包含的类库,JDK额外需要的一些类库。
三:jre:
java程序运行环境的根目录,JAVA要想运行少了它可不行。
Java Runtime Environment,一看英文大概就知道什么东西了。
里面也包括两个文件:bin和lib。

bin: 平台所用工具和库存的可执行文件和DLL文件。
lib: java运行环境的代码库,属性设置和资源文件,默认安装目录,安全管理。
书中解释:java运行时环境。
四:Demo:
一些演示的例子,学习时还是不错的东东。
五:include:本地的方法文件。编写JNI等程序需要的C头文件。〔这个地方还没接触到,看来还是个 菜!!!〕
六:src.zip:部分JDK的源码的压缩文件
七:sample:也是一些示例程序
再说说环境变量设置时的各项:(在网上找到的,写的挺不错的,拿来学习下)
JAVA_HOME:该环境变量的值就是Java  所在的目录,一些  Java  版的软件和一些  Java  的工具需要用到该变量,

设置  PATH  和  CLASSPATH  的时候,也可以使用该变量以方便设置。
PATH:指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,

则依次寻找  PATH  中的每一个路径,直至找到。或者找完  PATH  中的路径也不能找到,则报错。Java  的编译命令 

 (javac),执行命令  (java)  和一些工具命令  (javadoc,  jdb  等)  都在其安装路径下的  bin  目录中。因此我们应该将该

路径添加到  PATH  变量中。
CLASSPATH:也指定一个路径列表,是用于搜索  Java  编译或者运行时需要用到的类。在  CLASSPATH  列表中除

了可以包含路径外,还可以包含  .jar  文件。Java  查找类时会把这个  .jar  文件当作一个目录来进行查找。通常,我

需要把  JDK  安装路径下的  jre/lib/rt.jar  (Linux:  jre/lib/rt.jar)  包含在  CLASSPATH  中。


我又在网上http://bbs.pfan.cn/post-64823.html看到一篇很详细的解释,截取片断如下:

JAVA程序能够顺利编译需要两个环境变量,一个是PATH(path),一个是CLASSPATH(classpath)。那么这两个环境变

量代表什么呢?或者说究竟在JAVA程序编译中有什么作用呢?这就要涉及到WINDOWS的基本知识了。在WINDOWS环境中,

每一条能用的指令都保存在硬盘的“某个角落”,比如说指令NOTEPAD(WINDOWS的记事本指令,在C:\WINNT目录下),

那么在DOS命令提示符下直接输入NOTEPAD就可以打开记事本了。但是一旦我们把C:\WINNT目录下的NOTEPAD.EXE这个可

执行文件移开(比如说我们现在把它“剪切”到D盘根目录下)我们再在DOS提示符下直接输入NOTEPAD时就无法再打开

记事本了,但是我们在DOS下改变路径输入D:\NOTEPAD(或者先输入cd D: 在输入NOTEPAD也行)就可以打开记事本了。

这就是说在我们直接输入NOTEPAD的时候,其实其默认路径就是C:\WINN。假设我们要运行一个JAVA程序(hello.java)

就要先把它的class文件移动到JAVA里的bin目录下  然后打开DOS,把路径改到JAVA的BIN目录下 执行java hello.class,

一次无所谓 但是每次都要这样去做未免太麻烦。还好WINDOWS提供了一个PATH环境变量,他的作用就是现在这个变量的

值路径中去找,如果找到了要运行的EXE就运行,否则失败。如果我们把JAVA里的bin目录这个路径赋给path那么下次我

在运行java这个命令的时候,即便是直接输入DOS也能够在path变量中找到JAVA的bin目录下的java指令了。
下面说说,classpath环境变量。不知道各位注意到没有,我上面说的那句话——“假设我们要运行一个JAVA程序(hello.java)

就要先把它的class文件移动到JAVA里的bin目录下”,为什么要这样做呢?因为我们在用到java hello.class这条指令

的时候,DOS不知道hello.class这个文件在哪里,他就先到当前目录中去找,如果找到就运行,否则失败。当然,如果

说hello.java在D盘根目录下,你也可以用java D:\hello.class这条指令来运行,但是每次这样做也确实够麻烦。

WINDOWS就提供了这样一个环境变量——classpath,如果没有就应该新建一个。我们把D:\这个路径赋值给classpath,

那么下次在运行java hello.java的时候就先在当前目录中到,如果找到就运行,如果找不到就在classpath的值路径下去找,

找到就运行,找不到就失败。
以上阐述了path和classpath两个环境变量的作用,如果设置好了。java的编译和运行就基本上没什么问题了。至于有些

书上说的环境变量javahome初学阶段可以暂时不管它。


另:

dt.jar是关于运行环境的类库,主要是swing的包
tools.jar是关于一些工具的类库
rt.jar包含了jdk的基础类库,也就是你在java doc里面看到的所有的类的class文件

tools.jar是java最基本的包,里面包含了从java最重要的lang包到各种高级功能如可视化的swing包,是java必不可少的。而path下面的bin里面都是java的可执行的编译器及其工具,如java,javadoc等,你在任意的文件夹下面运行cmd键入javac,系统就能自动召见java的编译器就是归功于这个环境变量的设置。
原创粉丝点击