1.请说明JVM、JRE和JDK是什么?它们有什么关系?

JVM是Java虚拟机,Java Virtual Machine的缩写,是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

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环境变量。

IT兄弟连 Java语法教程 Java语言入门 典面试题的更多相关文章

  1. IT兄弟连 Java语法教程 Java平台的版本划分

    自从Sun公司推出Java以来,就力图使之无所不能.Java发展至今,按应用范围划分为3个版本,即Java SE.Java EE和Java ME,也就是SunOne(Open Net Environm ...

  2. IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK

    要想开发Java程序,就需要知道什么是JVM.JRE以及JDK.JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的 ...

  3. IT兄弟连 Java语法教程 Java语言的其他特性

    Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ●  语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...

  4. IT兄弟连 Java语法教程 Java语言的跨平台特性

    什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命 ...

  5. IT兄弟连 Java语法教程 Java语言背景

    驱使计算机语言革新的因素有两个:程序设计技术的改进和计算环境的改变.Java也不例外.在大量继承C和C++的基础之上,Java还增加了反应当前程序设计技术状态的功能与精华.针对在线环境的蓬勃发展(In ...

  6. IT兄弟连 Java语法教程 Java的发展历程

    只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...

  7. IT兄弟连 Java语法教程 Java语法基础 经典面试题

    1.Java语言中有几种基本类型?分别是什么?请详细说明每种类型的范围以及所占的空间大小? Java语言中有8中基本类型,分别是代表整形的byte.short.int和long,代表浮点型的float ...

  8. IT兄弟连 Java语法教程 Java开发环境 配置Java环境变量

    在安装完JDK后,我们需要配置系统的环境变量,否则在控制台中使用JDK为我们提供的工具时将出现如图12所示的错误信息. 图12  未配置环境变量时执行java命令提示的错误信息 当出现这样的提示信息时 ...

  9. IT兄弟连 Java语法教程 Java开发环境 安装JDK

    因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK.目前最新版本的JDK是JDK 10,但是我们以学习JDK 8为主,所以我们要安装的版本是JDK 8 ...

随机推荐

  1. API的理解和使用——有序集合

    有序集合常用的命令 命令 功能 zadd key score member [score member ... ] 添加元素 zcard key 计算成员个数 zscore key member 计算 ...

  2. BZOJ 2819 Nim 树链剖分+树状数组

    这题真没什么意思. 不过就是将普通的求Min,Max,求和等东西换成Xor,偏偏Xor还有很多性质. 算是刷道水题吧. #include<iostream> #include<cst ...

  3. 《C prime plus (第五版)》 ---第11章 字符串和字符串函数---4

    字符串的例子: 1.字符串排序: 应用范围:准备花名册,建立索引以及很多情况下都会用刀字符串的排序.这个程序的主要工具就是strcmp(). 算法:读一个字符串数组,对它们进行排序并输出. #incl ...

  4. 验证控件 .net

    检查Page.IsValid   if (typeof (Page_ClientValidate) == 'function') {                Page_ClientValidat ...

  5. 【LeetCode】求众数

    给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. class Solution(object): ...

  6. XXL-Job集群

    底层已经实现好了 调度中心集群 调度中心支持集群部署,提升调度系统容灾和可用性. 调度中心集群部署时,几点要求和建议: DB配置保持一致: 登陆账号配置保持一致: 群机器时钟保持一致(单机集群忽视): ...

  7. javascript(8)

      给对象添加方法还有两种方式: 第一种: function 类名(){ this.属性; } var 对象名=new 类名(); function 函数名(){ //执行 } 对象名.属性名=函数名 ...

  8. listen 63

    Danger Explainers Convince Kids Better Than Do Edict Issuers An eight-year-old may view a hammer as ...

  9. ef 多个模块,通过程序集映射entity,指定对应的repository

    在Entity Framework repository下加两个方法: public virtual T GetByEntityName(object id, string EntityTypeNam ...

  10. css 3d box 实现的一些注意事项

    Test1.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...