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. Spark与缓存

    预期成果 1.1   当前问题 当前以图搜图应用存在的问题: 当前使用spark RDD方案无法达到数据实时加载(每10分钟加载一次,虽然可配,但太短可能会有问题) Spark RDD内存会被分为两部 ...

  2. linux系统调用mount全过程分析【转】

    本文转载自:https://blog.csdn.net/skyflying2012/article/details/9748133 系统调用本身是软中断,使用系统调用,内核也陷入内核态,异常处理,找到 ...

  3. cmake编译成功之后VS2015可以build Solution但是不可以运行的解决办法

    1.在VS2015解决方案管理器中删除掉ALL_BUILD和ZERO_CHECK项,只保留Cmake生成的工程文件. 2.进行第一部之后还是有可能生成(build)失败,此时有可能是缺少文件.

  4. RQNOJ 328 炮兵阵地:状压dp

    题目链接:https://www.rqnoj.cn/problem/328 题意: 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队. 一个N*M的地图由N行M列组成(N≤100,M≤10), ...

  5. 最近火狐浏览器 总是“插件 adobe flash 已崩溃”

    原因和解决方案:在地址栏中输入:about:addons>在如下地方发现firefox已经在警告该插件的安全性了>选择“总不激活”

  6. tensorflow knn 预测房价 注意有 Min-Max Scaling

    示例数据: 0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 24.00 0.02731 0.00 ...

  7. 清除float浮动三种方式

    Float的作用? w3c的官方解释: Content flows down the right side of a left-floated box and down the left side o ...

  8. PHP实现简单爬虫-抓取网页url

    <?php /** * 爬虫程序 -- 原型 * * 从给定的url获取html内容 * * @param string $url * @return string */ function _g ...

  9. STM32中IO口的8中工作模式

    该文摘自:http://blog.csdn.net/kevinhg/article/details/17490273 一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两 ...

  10. 【LeetCode】026. Remove Duplicates from Sorted Array

    题目: Given a sorted array, remove the duplicates in place such that each element appear only once and ...