IT兄弟连 Java语法教程 Java语言入门 典面试题
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语言入门 典面试题的更多相关文章
- IT兄弟连 Java语法教程 Java平台的版本划分
自从Sun公司推出Java以来,就力图使之无所不能.Java发展至今,按应用范围划分为3个版本,即Java SE.Java EE和Java ME,也就是SunOne(Open Net Environm ...
- IT兄弟连 Java语法教程 Java开发环境 JVM、JRE、JDK
要想开发Java程序,就需要知道什么是JVM.JRE以及JDK.JVM是运行Java程序的核心,JRE是支持Java程序运行的环境,而JDK是Java开发的核心,下面我们分别具体介绍它们以及它们之间的 ...
- IT兄弟连 Java语法教程 Java语言的其他特性
Java语言中除了非常重要的跨平台特性外,还有如下几个关键特性: ● 语法简单易学 Java语言的语法简单明了,容易掌握,而且是纯面向对象(OOP)的语言,Java语言的简单性主要体现在以下几个方面 ...
- IT兄弟连 Java语法教程 Java语言的跨平台特性
什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台. CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种零部件的命 ...
- IT兄弟连 Java语法教程 Java语言背景
驱使计算机语言革新的因素有两个:程序设计技术的改进和计算环境的改变.Java也不例外.在大量继承C和C++的基础之上,Java还增加了反应当前程序设计技术状态的功能与精华.针对在线环境的蓬勃发展(In ...
- IT兄弟连 Java语法教程 Java的发展历程
只有少数几种编程语言对程序设计带来过根本性的影响.其中,Java的影响由于迅速和广泛而格外突出.可以毫不夸张的说,1995年Sun公司发布的Java1.0给计算机程序设计领域带来了一场变革.这场变革迅 ...
- IT兄弟连 Java语法教程 Java语法基础 经典面试题
1.Java语言中有几种基本类型?分别是什么?请详细说明每种类型的范围以及所占的空间大小? Java语言中有8中基本类型,分别是代表整形的byte.short.int和long,代表浮点型的float ...
- IT兄弟连 Java语法教程 Java开发环境 配置Java环境变量
在安装完JDK后,我们需要配置系统的环境变量,否则在控制台中使用JDK为我们提供的工具时将出现如图12所示的错误信息. 图12 未配置环境变量时执行java命令提示的错误信息 当出现这样的提示信息时 ...
- IT兄弟连 Java语法教程 Java开发环境 安装JDK
因为我们要开发Java程序,所以必须在我们的计算机中安装Sun(Oracle)公司提供给我们的JDK.目前最新版本的JDK是JDK 10,但是我们以学习JDK 8为主,所以我们要安装的版本是JDK 8 ...
随机推荐
- 单机部署tomcat的shell脚本
单机部署tomcat的shell脚本,来自网络,自己需要时要根据自己的需求改动. #!/bin/sh # ############################################### ...
- 简单学习github代码托管
之前尝试使用阿里云code做代码托管 egret+git+阿里云code搭建团队开发 ,现在来学习一下使用 Github做代码托管服务. 总体上看使用的步骤差不多,都需要使用GIT客户端来进行相关的操 ...
- Android Weekly Notes Issue #320
Android Weekly Issue #320 July 29th, 2018 Android Weekly Issue #320 本期内容包括: Firebase的MLKit; 关于写Andro ...
- BZOJ 3671 NOI2014 随机数生成器
这题其实是个暴力. 首先那一堆如何构造n*m方格的东西都是在玩你. 构造出来方阵后,由于是一个排列,不存在重复,可以大力贪心. 每次将选出一个最小的元素,然后将它右上左下的元素全部打上标记(记得bre ...
- adaptiveThreshold自适应二值化源码分析
自适应二值化介绍: 二值化算法是用输入像素的值I与一个值C来比较,根据比较结果确定输出值. 自适应二值化的每一个像素的比较值C都不同,比较值C由这个像素为中心的一个块范围计算在减去差值delta得到. ...
- 自用的弹出窗口jquery插件
现有网上的弹出窗口插件很多, 但发现在项目应用中总会有些功能不能适用, 最后只好自己写一个:插件主要参考了ymPrompt弹窗代码, ymPrompt是JS的弹窗,本插件相当于是ymPrompt的jq ...
- 淘宝双十一页面(Flexible)
以下demo点我下载 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- BZOJ_3159_决战
题目链接 分析: 我使用树剖+splay维护这个东西. 对每条重链维护一棵splay,链加和查询正常做,剩下的链反转如下. 由于一定是深度递增的一条链,我们树剖将它分成从左到右log个区间,提取出对应 ...
- ACM学习历程——POJ1260 Pearls(动态规划)
Description In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces ...
- RabbitMQ的持久化机制
一.问题的引出 RabbitMQ的一大特色是消息的可靠性,那么它是如何保证消息可靠性的呢?——消息持久化.为了保证RabbitMQ在退出,服务重启或者crash等异常情况下,也不会丢失消息,我们可以将 ...