java 温习笔记——path&classpath

java 复习笔记——path&classpath
A) path & classpath
  1) path : bin目录下,二进制可执行文件,如javac(编译器),java(解释器)。
      classpath: lib文件,如java文件。
  2) path 路径: 是java编译时需要调用的程序(如java,javac等)所在的地方.
     classpath 类的路径: 编写的java类的位置,在编译运行java程序时,如果有调用到
                           其他类的时候,在classpath中寻找需要的类。
B) jdk,jre,jvm

   一)http://zhidao.baidu.com/question/209576970.html?an=0&si=1
   1)
   JDK包含JRE,而JRE包 含JVM.
   JRE( Java Runtime Environment )是指java运行环境。光有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
   (注意:这里的bin、lib文件夹和jre里的bin、lib是不同的.)总的来说JDK是用于java程序的开发,而jre则 是只能运行class而没有编译的功能。
     记忆方法:“做加法来记忆,比做减法好记”——(JVM是虚拟机+类库)=JRE只能运行class<JDK  
2)
   JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JRE提供的类库包括有像java.lang,java.until包这样常用的类库。
   JVM (Java Virtual Machine,Java虚拟机),它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的JVM 可以编译你写的java代码并执行编译出来的字节码文件。

   二)http://zhidao.baidu.com/question/122687643.html?fr=qrl&cid=870&index=2&fr2=query
   1)
     JDK是JAVA的核心,包括JRE(JAVA 虚拟环境)、编译器等,JDK的主流产品是由SUN公司开发的,JDK本身是用JAVA编写的,安装包的SRC.ZIP就是JDK的源码
JVM(JAVA虚拟机),是可以运行JAVA代码的假想计算机,主要任务是把JAVA字节码编译成特定计算机的机器指令,是JAVA实现“一次运行,处处运行”的关键
JRE是JAVA运行环境,包括JVM、JAVA平台核心类和支持文件,如果只是运行JAVA程序的话,可以下载JRE就可以了,如果要开发的话,就要下JDK了。

    2) java运行顺序
   JAVA运行顺序:先编写JAVA程序块,然后通过JDK的编译器把JAVA程序编译成字节码生成class文件,然后通过JVM运行。主要指令有 javac a.java,java a。

    3)备注:jdk目录下的bin中的javac编译器和java解释器属于jdk,(自己:或许可以说 开发时,jdk目录下的bin目录中java指令调用了JVM及JVM运行时所需要的类库lib(这两者分别在jre目录下的bin和lib文件夹中,也即是JRE);应用时,客户端直接调用了JVM及JVM运行时所需要的类库lib(即JRE),即我们常说的客户端运行应用时,可以不按照jdk,只安装JRE).

  三)Java程序执行与C/C++程序执行的对比分析
      如果把Java源程序想象成我们的C++源程序,Java源程序编译后生成的字节码就相当于C++源程序编译后的80x86的机器码(二进制程序文件),JVM虚拟机相当于80x86计算机系统,Java解释器相当于80x86CPU。在80x86CPU上运行的是机器码,在Java解释器上运行的是Java字节码。
      Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当前,并不是在所有的平台下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。