简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDKSoftware Development Kit 一般指软件开发包,可以包括函数库、编译程序等。
JDK就是Java Development Kit
JREJava Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。
如果安装了JDK,会发同你的电脑有两套JRE,一套位于 \jre 另外一套位于 C:\Program Files\Java\j2re1.4.1_01 目录下,后面这套比前面那套少了Server端的Java虚拟机,不过直接将前面那套的ServerJava虚拟机复制过来就行了。而且在安装JDK可以选择是否安装这个位于 C:\Program Files\Jav a 目录下的JRE如果你只安装JRE,而不是JDK,那么只会在 C:\Program Files\Java 目录下安装唯一的一套JRE
JRE的地位就象一台java创建文件PC机一样,我们写好的 Win32应用程序需要操作系统帮我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。所以当你装完JDK后,如果分别在硬盘上的两个不同地方安装了两套JRE,那么你可以想象你的电脑有两台虚拟的Java PC机,都具有运
Java程序的功能。所以我们可以说,只要你的电脑安装了JRE,就可以正确运行Jav a应用程序。
1、为什么Sun要让JDK安装两套相同的JRE?这是因为JDK里面有很多用Java所编写的开发工具(如等),而且都放置在 \lib\tools.jar 里。从下面例子可以看出,先将tools.jar改名为tools1.jar,然后运行,显示如下结果: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 这个意思是说,你输入与输入 java -cp c:\jdk\lib\tools.jar ls.javac.Main 是一样的,会得到相同的结果。从这里我们可以证明只是一个包装器(Wrapper),而制作的目的是为了让开发者免于输入太长的指命。而且可以发现\lib目录下的程序都很小,不大于2 9K,从这里我们可以得出一个结论。就是JDK里的工具几乎是用Java所编写,所以也是Java应用程序,因此要使用JDK所附的工具来开发Java程序,也必须要自行附一套JRE才行,所以位于C:\Program Files\Java目录下的那套JRE就是用来运行一般Java程序用的。
2、如果一台电脑安装两套以上的JRE,谁来决定呢?这个重大任务就落在身上。的工作就是到合适的JRE来运行 Java程序。 依照底下的顺序来查JR
E自己的目录下有没有JRE;父目录有没有JRE;查询注册表: [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] 所以的运行结果与你的电脑里面哪个JRE被执行有很大的关系。
3、介绍JVM JRE目录下的Bin目录有两个目录:serverclient。这就是真正的jvm.dll所在。 jvm.dll无法单独工作,当jvm.dll启动后,会使用explicit的方法(就是使用Win32 API之中的LoadLibrary()GetProcAddress()来载入辅助用的动态链接库),而这些辅助用的动态链接库(.dll)都必须位于jvm.dll所在目录的父目录之中。因此想使用哪个JVM,只需要设置PATH,指向JRE所在目录底下的jvm.dll
JARJava ArchiveJava 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件)。
JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR
  一个 JAR 文件可以用于
  用于发布和使用类库
  作为应用程序和扩展的构建单元
  作为组件、applet 或者插件程序的部署单位
用于打包与组件相关联的辅助资源
META-INF 目录

  大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息。Java 2 平台识别并解释 META-INF 目录中的下述文件和目录,以便配置应用程序、扩展和类装载器
个人理解:在windows下运行程序实际上是加载与windows有关的文件或者程序(想网上说是去java.dll的文件)然后有这个文件或者和别的文件一起来让jvmjava虚拟机,
说白了就是一个能让java程序在上面跑起来的平台,还是基于windows操作系统的)运行起来,然后运行的jvmjvm的实现叫java运行时环境即jre,他中包括java运行时环境,java虚拟机 运行类库等)装载.class文件,即运行java程序也就是运行了这个用java写的程序。此时java解释器)也运行起来,他有三项主要工作
下载代码-由类下载器完成  校验代码-由字节码校验器完成        运行代码-由运行解释器完成
Java运行时系统区别对待来自不同的源类文件。可能是本机的也可能是网上的,运行时系统动态决定程序运行时候需要的类文件,并把他们下载到内存中,将类,接口与运行时系统相关联,类下载器把本地文件系统的类名和网络源输入的类名空间区分开,以增强安全性,因为内置的类总是先被检查大到,所有类下载完毕后,开始确定可执行文件的内存分配,此时指定具体的内存地址,并创建查询表,因为内存是在运行时进行的,说白了就是执行字节码文件时候(也就是java应用程序了)先把需要的类文件到,然后校验一下 最后让其在虚拟机中运行(保证安全后 将其注入内存 也就是类似与class是一些指令在jvm这个虚拟机上执行一些指令罢了
Classpath
类路径告诉 Java 应用程序去哪里查第三方和自定义类 -- 即不是 Java 扩展或 Java 平台一部分的类。
多数应用程序的类库都会充分利用扩展机制。
设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以到您所要执行的Java程序。
Java执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的Java程序(后面会介绍到Java程序编译完成之后,会以.class文件存在)。如果将Java执行环境比喻为操作系统,如果设置Path变量是为了让操作系统到指定的工具程序(Windows来说就是到.exe文件),则设置Classpath的目的就是让Java执行环境到指定的Java程序(也就是.class文件)
JAVA内部类库分别在两个目录下,一是\Java\jdk1.6.0_10\lib,另一个是Java\jre6\lib,一个在JDK的安装路径下,另一个在JRE的安装路径下,一般来说JRE路径的内部类是为你的心程序使用的,你在程序中import的类就是这里的,但是JVM在运行中一些命令,比如javadoc等,也是需要一些内部类,而这些内部类是放在JDK的安装目录下的,比如tools.jar
所以你如果在命令行里编译运行程序的话最好把classpath设了
Jdbc api中定义了一些与各种类型数据库通信的方法(怎样去通信) jdbc数据库驱动就是jdbc driver实现了 jdbc api中定义的与一些数据库通信的方法(实实在在的做到了)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。