1.请说明JVM、JRE和JDK是什么?它们有什么关系?java
JVM是Java虚拟机,Java Virtual Machine的缩写,是一个虚构出来的计算机,经过在实际的计算机上仿真模拟各类计算机功能来实现的。Java虚拟机有本身完善的硬体架构,如处理器、堆栈、寄存器等,还具备相应的指令系统。JVM屏蔽了与具体操做系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就能够在多种平台上不加修改地运行。sql
JRE是Java运行环境,Java Runtime Environment的缩写。运行Java程序所必须的环境的集合,包含JVM标准实现及Java核心类库。数据库
JDK是Java标准版开发工具包,是Sun提供的一套用于开发Java程序的开发包,它提供了编译、运行Java程序所需的各类工具和资源,其中包括了编译器和Java运行时环境JRE。编程
JDK中包含JRE,JRE中包含JVM,若是只是运行Java程序,那么只须要下载安装JRE就能够了,可是若是想开发Java程序,那么就须要下载安装JDK。网络
2.如何编译Java源文件?如何运行一个Java程序?架构
Java的源文件文件名是以.java为后缀的,当编写好Java源文件后,须要使用JDK中提供javac.exe程序进行编译。在系统控制台(CMD)中进入源文件所在的目录,使用“javac源文件名”的命令格式进行编译,在编译的过程当中若是没有提示错误就表示编译成功,会在源文件同目录下生成编译后的字节码文件,Java的字节码文件文件名与源文件同名,可是使用.class做为文件名的后缀。编程语言
当Java的源代码编译成字节码文件后,就能够经过java命令运行这个Java程序。在系统控制台(CMD)中进入字节码文件所在的目录,使用“java类名”的命令格式运行Java程序。java命令中使用的类名是Java源程序中定义的类名,而不是Java字节码文件的文件名。若是使用“java字节码文件名”来运行Java程序会提示错误。分布式
3.Java语言是不是跨平台的?若是是跨平台的,那平台指的是什么?工具
Java语言是跨平台的编程语言,这里说的平台指的是计算机中的CPU和操做系统的总体。CPU种类繁多,不一样类型的CPU使用了不一样的指令集,不一样的操做系统支持不一样的指令集。但由于目前主流的操做系统支持大部分主流的CPU的所有指令集,因此在操做系统层面上就屏蔽了CPU种类的不一样,可是操做系统根据CPU中通用寄存器的宽度也分红了32位操做系统和64位操做系统。因此目前说的Java语言跨平台指的是跨操做系统版本。开发工具
4.JavaSE、JavaEE和JavaME分别表明了什么?
JavaSE:Java Standard Edition,标准版。是咱们经常使用的一个版本,从JDK1.5开始,更名为JavaSE,主要用于桌面应用软件的编程。
JavaEE:Java Enterprise Edition, 企业版。JavaEE是J2EE的一个新名称,主要用于分布式的网络程序的开发
JavaME:Java Micro Edition,机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的JavaAPI。
5.Java跨平台是如何实现的?
Java是利用JVM(Java虚拟机)实现跨平台的。
Java源代码(*.java)通过Java编译器编译成Java字节码(*.class),执行Java字节码,Java字节通过JVM解释为具体平台的具体指令并执行。不一样平台有不一样的JVM,主流平台都提供了JVM,因此Java字节码能够在主流平台上可以解释执行。在这个意义上Java是跨平台的,也就是说:Java的字节码是跨平台的。
6.请列举一些Java中比较常见的包以及做用。
java.lang包:这个包中包含了jdk提供的基础类,好比String等都是这里面的,这个包是惟一一个不用导入就可使用的包;
java.io包:包含了与输入输出相关的类;好比文件操做等
java.net包:包含了与网络相关的类,好比URL,URLConnection等
java.util包:这个是系统辅助类,特别是集合类Collection,List,Map等。
java.sql包:数据库操做的类,Connection,Statement,ResultSet等。
7.安装JDK后须要配置环境变量么?须要配置那些环境变量?具体怎么配置?
安装JDK后须要配置环境变量,若是不配置环境变量,在控制台使用Java命令会提示命令未找到。须要配置系统Path和CLASSPATH变量。在系统Path原变量值前加入JDK的bin目录的路径,并在最后加入分号。CLASSPATH变量在JDK5后能够省略,由于JDK5后会自动在当前路径下寻找Java类。可是在JDK5以前须要在CLASSPATH变量中添加“.”以及JDK中lib目录下的dt.jar和tools.jar的路径,中间使用分号分隔,“.”表明的是当前目录,编译Java程序须要dt.jar和tools.jar这两个工具包,因此也须要加入CLASSPATH环境变量。