一、JDK的基本概念

我们通常所说的JDK,其实是指Java开发包,里面包含Java开发用到的工具集。

JDK(Java Development ToolKit),包含了Java运行环境(JRE)和开发工具(编译器,调试器,javadoc等)。我们就是依靠JDK来开发和运行Java程序的。
JDK的编译器Javac[.exe],会将Java代码编译成字节码(.class文件)。编译出的字节码在任何平台上都一样的内容,所以我们说Java语言是门跨平台语言。

二、JDK的组成结构


dbeaver 的 java内存 不够_java


JRE(Java Runtime Environment) ,它为Java提供了运行环境,其中重要的一环就是通过JVM将字节码解释成可执行的机器码。
JRE由JVM,Java运行时类库,动态链接库等组成。

JVM(Java Virtual Machine),Java虚拟机,可以看做是一台抽象化的计算机,它有一套完整的体系架构,包括处理器、堆栈 、寄存器等。
在运行时环境,JVM会将Java字节码解释成机器码。机器码和平台相关的(不同硬件环境、不同操作系统,产生的机器码不同),所以JVM在不同平台有不同的实现。
目前JDK默认使用的实现是Hotspot VM。

Java能实现跨平台的原因:

Java源文件在通过编译器之(javac.exe)后被编译成相应的.Class文件(字节码文件),这一步在所有平台上都是相同的;
.Class文件再被JVM中的解释器(java.exe)编译成机器码在不同的操作系统 ( Windows、Linus、Mac )上面运行。不同操作系统上面的JVM是不同的,解释器是不同的,他们可以把.Class文件编译为当前操作系统可读的机器码,然后机器码执行去调用操作系统类库实现功能。
也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。注意:跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,不同平台下需要安装不同版本的JVM

dbeaver 的 java内存 不够_Java_02


三、JDK的文件结构

以下为JDK的文件及其功能:

如果研究或者检查调试,可以参考下面

C:Program FilesJavajdk1.7.0_21 -- JDK的根目录,包含一些软件版权,声明,和自述文件,同时包含归档了的Java平台源代码包src.zip 
C:Program FilesJavajdk1.7.0_21src.zip
C:Program FilesJavajdk1.7.0_21include
C:Program FilesJavajdk1.7.0_21lib
================C:Program FilesJavajdk1.7.0_21jre================
C:Program FilesJavajdk1.7.0_21jre
C:Program FilesJavajdk1.7.0_21jrebin
C:Program FilesJavajdk1.7.0_21jrebinclient
C:Program FilesJavajdk1.7.0_21jrebinserver -- 包含Java Hotspot(Java性能引擎) Server Virtual Machine 服务器虚拟机要用的DLL文件 ----JDK 比 JRE C:Program FilesJavajre7bin多一个server端的java虚拟机。即这个folder “Server” 不存在于JRE下。
C:Program FilesJavajdk1.7.0_21jrelib
C:Program FilesJavajdk1.7.0_21jrelibrt.jar
C:Program FilesJavajdk1.7.0_21jrelibcharsets.jar
C:Program FilesJavajdk1.7.0_21jrelibext
C:Program FilesJavajdk1.7.0_21jrelibextlocaledata.jar
C:Program FilesJavajdk1.7.0_21jrelibsecurity
C:Program FilesJavajdk1.7.0_21jrelibapplet
C:Program FilesJavajdk1.7.0_21jrelibfonts
================C:Program FilesJavajdk1.7.0_21db================
C:Program FilesJavajdk1.7.0_21db
 有关 Java DB 的信息,请参见 http://developers.sun.com/prodtech/javadb/。
 有关 Derby 的文档,请参见:http://db.apache.org/derby/manuals/index.html 
================C:Program FilesJavajdk1.7.0_21bin================
C:Program FilesJavajdk1.7.0_21bin
C:Program FilesJavajdk1.7.0_21binjavac.exe
C:Program FilesJavajdk1.7.0_21binjava.exe
C:Program FilesJavajdk1.7.0_21binjavadoc.exe
C:Program FilesJavajdk1.7.0_21binapt.exe
C:Program FilesJavajdk1.7.0_21binappletviewer.exe
C:Program FilesJavajdk1.7.0_21binjar.exe
C:Program FilesJavajdk1.7.0_21binjdb.exe
C:Program FilesJavajdk1.7.0_21binjavah.exe
C:Program FilesJavajdk1.7.0_21binjavap.exe -- 基本工具 - class文件反编译工具,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
C:Program FilesJavajdk1.7.0_21binextcheck.exe
C:Program FilesJavajdk1.7.0_21binkeytool.exe -- 安全工具 - 管理密钥库和证书. 
C:Program FilesJavajdk1.7.0_21binjarsigner.exe -- 安全工具 - 生产和校验JAR签名 
C:Program FilesJavajdk1.7.0_21binpolicytool.exe -- 安全工具 - 有用户界面的规则管理工具 
C:Program FilesJavajdk1.7.0_21binkinit.exe.exe -- 安全工具 - 用于获得和缓存网络认证协议Kerberos 票证的授予票证 
C:Program FilesJavajdk1.7.0_21binklist.exe.exe -- 安全工具 - 凭据高速缓存和密钥表中的 Kerberos 显示条目 
C:Program FilesJavajdk1.7.0_21binktab.exe.exe -- 安全工具 - 密钥和证书管理工具 
C:Program FilesJavajdk1.7.0_21binnative2ascii.exe -- Java国际化工具 - 将文本转化为 Unicode Latin-1。详情参考http://java.sun.com/javase/6/docs/technotes/tools/windows/native2ascii.html 
C:Program FilesJavajdk1.7.0_21binrmic.exe -- 远程方法调用工具 - 生成远程对象的stubs and skeletons(存根和框架) 
C:Program FilesJavajdk1.7.0_21binrmid.exe -- 远程方法调用工具 - Java 远程方法调用(RMI:Remote Method Invocation) 活化系统守护进程 
C:Program FilesJavajdk1.7.0_21binrmiregistry.exe -- 远程方法调用工具 - Java 远程对象注册表 
C:Program FilesJavajdk1.7.0_21binserialver.exe -- 远程方法调用工具 - 返回类的 serialVersionUID.
C:Program FilesJavajdk1.7.0_21bintnameserv.exe -- Java IDL and RMI-IIOP 工具 - Provides access to the naming service. 
C:Program FilesJavajdk1.7.0_21binidlj.exe -- Java IDL and RMI-IIOP 工具 - 生产映射到OMG IDL接口可以使Java应用程序使用CORBA的.java文件 
C:Program FilesJavajdk1.7.0_21binorbd.exe -- Java IDL and RMI-IIOP 工具 - 为客户可以在CORBA环境下透明的定位和调用服务器的稳定的对象提供支持 
C:Program FilesJavajdk1.7.0_21binservertool.exe -- Java IDL and RMI-IIOP 工具 - 为应用程序提供易于使用的接口用于注册,注销,启动,关闭服务器 
C:Program FilesJavajdk1.7.0_21binpack200.exe -- Java 部署工具 - 使用java gzip压缩工具将JAR文件转换为压缩的pack200文件,生产打包文件是高度压缩的JAR包,可以直接部署,减少下载时间 
C:Program FilesJavajdk1.7.0_21binunpack200.exe -- Java 部署工具 - 解包pack200文件为JARs 
C:Program FilesJavajdk1.7.0_21binhtmlconverter.exe -- Java 插件工具 - Java Plug-in HTML转换器 htmlconverter -gui 可以启动图形界面 
C:Program FilesJavajdk1.7.0_21binjavaws.exe -- Java web 启动工具 - Java web 启动命令行工具 
C:Program FilesJavajdk1.7.0_21binjvisualvm.exe -- Java 故障检修,程序概要分析,监视和管理工具 - 一个图形化的Java虚拟机,不说了 大家研究一下就发现太酷了.这是想了解JVM的人的神器http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html
C:Program FilesJavajdk1.7.0_21binjconsole.exe -- Java 故障检修,程序概要分析,监视和管理工具 -java监视台和管理控制台,图形界面的功能太强大了,运行一下就知道 ,不想多说,看了就知道 
C:Program FilesJavajdk1.7.0_21binschemagen.exe -- Java web 服务工具 - Java构架的XML Schema生成器 
C:Program FilesJavajdk1.7.0_21binwsgen.exe -- Java web 服务工具 - 生成 JAX-WS 
C:Program FilesJavajdk1.7.0_21binwsimport.exe -- Java web 服务工具 - 生成 JAX-WS 
C:Program FilesJavajdk1.7.0_21binxjc.exe -- Java web 服务工具 - 绑定编译器 
C:Program FilesJavajdk1.7.0_21binjps.exe -- 监视工具 - JVM Process Status 进程状态工具。列出目标系统的HotSpot JJVM , 监视Java虚拟机的性能,不支持Windows 98 和Windows ME 平台 
C:Program FilesJavajdk1.7.0_21binjstat.exe -- 监视工具 - 按照命令行的具体要求记录和收集一个JVM的性能数据 
C:Program FilesJavajdk1.7.0_21binjstatd.exe -- 监视工具 - JVM jstat 的守护进程 
C:Program FilesJavajdk1.7.0_21binjinfo.exe -- 故障检测和修理工具 - 配置或打印某个Java进程VM flag 
C:Program FilesJavajdk1.7.0_21binjhat.exe -- 故障检测和修理工具 - 堆储存查看器 
C:Program FilesJavajdk1.7.0_21binjmap.exe -- 故障检测和修理工具 - Java内存图 
C:Program FilesJavajdk1.7.0_21binjsadebugd.exe -- 故障检测和修理工具 - Java 的 Serviceability Agent Debug的守护进程 
C:Program FilesJavajdk1.7.0_21binjstack.exe -- 故障检测和修理工具 - Java堆栈跟踪 
C:Program FilesJavajdk1.7.0_21binjrunscript.exe -- Java脚本工具 - 运行脚本