2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Java学习前 需要掌握的一些基础知识

Java学习前 需要掌握的一些基础知识

时间:2021-06-14 21:36:49

相关推荐

Java学习前 需要掌握的一些基础知识

JDKJREJVM区别与联系 安装JDK时为什么有两个JRE细说JDK目录结构

在学习Java之前,对于一些基础知识的总结:

在学习java之前,第一件事便是搭建Java开发环境。JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。

JDK、JRE、JVM区别与联系

JDK: Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

JRE: Java Runtime Enviromental(java运行时环境)。也就是我们说的JAVA平台,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。

JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。

下图很好的表面了JDK,JRE,JVM三者间的关系:

安装JDK时为什么有两个JRE

安装JDK后,安装目录中出现两个版本的JRE文件,其中之一在JDK外部,一个在JDK内部,这是所谓的专用JRE和公用JRE;

专用JRE

专用JRE是给JDK中包含的工具工具提供运行环境;专用JR没有注册表设置,并且完全包含在仅对JDK已知的Java目录位置;公用JRE

公用JRE可由其他Java应用程序使用(如浏览器插件或者Swing界面的客户端),并且包含在JDK外部,公共JRE会注册到Windows注册表(位于 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft)中,公共JRE可以使用“添加/删除程序”进行删除,并且还会注册到浏览器;换句话说,公共JRE就是为运行加载到计算机中的JAVA程序来提供运行环境的;

细说JDK目录结构

装好JDK后,我们要先明白JDK里面都包含了写什么东西,主要有什么作用!下图为JDK8的安装目录:

bin:这是存放java启动命令以及其他开发工具命令(如javac)的,该目录应当保存到PATH变量中。

javac: 编译器,将源程序转成字节码jar: 打包工具,将相关的类文件打包成一个文件javadoc: 文档生成器,从源码注释中提取文档jdb: debugger,查错工具java: 运行编译后的java程序(.class后缀的)appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。Jconsole: Java进行系统调试和监控的工具

lib:是JDK工具用到的类库及其他文件。tools.jar就包含了对开发工具的支持功能库;dt.jar就是所谓DesignTime的东西,估计是给JavaBean和IDE用的;jconsole.jar自然是给jconsole工具用的了;htmlconverter.jar是用来把用applet的HTML转成所谓Java Plug-In的,即标签改为。

include:包含C语言头文件,用于编写JNI程序和JVMDI(Debugger Interface)的程序时用到,好像还有JVMTI。

jre:这就是JDK自含JRE的根目录了,这是系统属性java.home所指向的目录。下图为JRE的目录结构:

jre/bin:包含执行文件和dll等库文件,是JVM需要的,可执行文件和jdk/bin是一样,本目录不需要被PATH所包含。

jre/bin/client:包含用Client模式的VM时需要的dll库。jre/bin/server:包含用Server模式的VM时需要的dll库。jre/lib:包含核心代码库(Java平台的core API),如rt.jar是所谓的bootstrap的类库,还有很多其他需要的子目录和资源文件等等。注意这个lib目录和jdk/lib是不一样的。

jre/lib/ext:是Extension Class Loader装入jar类库的地方,如localdata.jar包含的是java.text和java.util需要的东西。jre/lib/security:包含JVM安全需要的设置文件,JVM信任的证书也在这里。jre/lib/applets:用于applet需要用到的jar库文件,Applet类通过Applet Class Loader从本地文件系统中预加载,这样为减小大型 Applet 的启动时间提供了一些方式,好像从网上已经下载完成了一样。jre/lib/fonts:字体文件。

不积跬步,无以至千里!!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。