1.简述JDK和JRE的关系和区别
答:
JRE是JAVA的运行环境,为java程序运行提供了可能。计算机在安装JRE后仅能运行JAVA程序,无法开发和调试。是使用java语言编写的程序运行所需要的软件环境。
JDK是JAVA标准开发包,它提供了编译,运行java程序所需要的各种工具和资源。程序员使用java语言编写java程序所需的开发工具包。
【区别】
(1)
(1、面向人群不同
JDK是提供给程序员使用的。JRE是提供给想运行java程序的用户使用的。
(2、重要程度不同
如果你需要编写java程序,需要安装JDK。如果你需要运行java程序,只需要安装JRE就可以了。
(3、安装目录不同
如果安装JDK,电脑会有两套JRE,一套是JDK中的JRE,位于 \jre 目录下。另外一套是JRE自己的,在下载安装时默认位于 C:\Program Files\Java\jre目录下。在这里博主当时安装JRE时是放到了D盘,如图:
【区别】
三、联系
1、包含关系
JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具(JConsole,Web Services等工具软件),还包含了Java基础的类库(即Java API 包括rt.jar)。
2、执行关系
在这里首先就要提到JVM,JVM(Java Virtual Machine)就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
2.JAVA语言的特点有哪些?
(1)操作简单:语言中剔除了很多模糊概念,还提供了自动垃圾回收机制。
(2)跨平台易移植:JRE针对不同平台有不同版本,平台安装了配套的JRE,字节码文件就可以在其上运行。
(3)安全性高:提供了防止恶意代码攻击的机制,利用字节确认器完善安全机制,保护本地资源与文件系统。
(4)面向对象:java语言中一切皆可对象,在解决问题时先将问题抽象分析,归纳为可用的对象。在问题处理时可以使用这些对象。
(5)封装性:java语言将对象的属性和行为方法封装起来,外界不会了解内部的具体实现。
(6)继承性:java中类与类之间可以继承,无需重复编写即可共用一部分代码,增强可扩展性。
(7)多态性:同名的属性或者方法在不同的类内有不同的意义。
3.简述JAVA的三大平台
(1)java标准版(javaSE)是为开发普通桌面和商务应用程序所提供的解决方案。
(2)java企业版(javaEE)是为开发企业级服务器端java应用程序。
(3)java微型版:(javaME)是为开发嵌入式设备提供的方案。
4.简述解释型语言与编译型语言的区别
编译型语言需要配备与语言一致的专门编译器,源代码一次编译成目标代码,通过链接方式可以实现两个以上成果代码之间的复用,但可移植性差,执行效率高。
每执行一次解释型语言都要逐一对源代码进行编译,需要特定的解释器对源代码一一进行解释,可实现平台之间的移植。
5.简述JVM的运行机制
虚拟机中的java解释器负责将字节码文件解释成为特定平台的二进制代码。
java虚拟机为字节码提供了统一的虚拟运行平台,又负责和不同的底层机器沟通。同时兼顾了高效率执行也达到了很好的跨平台性。
例如:Windows平台上编译好的字节码,拷贝到Linux平台后,经过linux系统下的Java虚拟机解释后可执行。字节码文件与linux系统下java虚拟机的完美结合完成了java从windows系统到linux系统的移植。