第一篇项目开发前期准备 ■ 任务1安装配置开发环境及需求分析 ■ 任务2处理考试系统中的成绩 ■ 任务3创建考试系统中的类和接口 ■ 任务4利用Java API查阅常用类 ■ 任务5捕获考试系统中的异常 任务1安装配置开发环境及需求分析 (接标题接正文是42mm) 学习目标 本任务通过安装、配置Java项目的开发环境以及对考试系统进行需求分析,应掌握以下内容: 了解Java语言的产生与发展。 理解Java的主要特点与实现机制。 熟悉JDK 和Eclipse的下载、安装。 掌握Eclipse开发Java程序的步骤。 了解项目开发需求分析的内容。 1.1任 务 描 述 本部分的主要学习任务是安装配置开发环境及进行项目需求分析与总体设计,将其分解为四个子任务,分别是下载安装JDK、下载安装Eclipse、编写第一个Java程序、项目需求分析与设计。 1.2技 术 概 览〖1〗1.2.1Java语言的产生与发展Java是由Sun公司于1995年推出的面向对象程序设计语言,使用它可以在各式各样不同机器、不同操作平台的网络环境中开发软件。Java从诞生到现在已经有二十几年的时间了,在这二十几年里Java这个名词不再只是表示一种程序语言,而是一种开发软件的平台,并成为开发软件的标准与架构的统称。同时,Java正在逐步成为Internet应用的主要开发语言,它彻底改变了应用软件的开发模式,为迅速发展的信息世界增添了新的活力。 Java语言的前身是Oak语言。1991年4月,Sun公司的James Gosling领导的绿色计划(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行。为了使所开发的程序能在不同的电子产品上运行,开发人员在C++基础上开发了Oak语言。Oak语言是一种可移植、跨平台的语言,利用它可以创建嵌入于各种家电设备的软件。 Java程序设计任务驱动式教程任务1安装配置开发环境及需求分析1994年,在Oak的基础上创建了HotJava的第一个版本,当时称为WebRunner,是Web上使用的一种图形浏览器。经过一段时间后才改名为Java。Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,还必须要有一个的强大的开发库支持,因此,Sun在1996年1月23日发布了JDK 1.0。这个版本包括两部分: 运行环境(即JRE)和开发环境(即JDK)。在运行环境中包括核心API、集成API,用户界面API,发布技术,Java虚拟机(JVM)五个部分。而开发环境还包括编译Java程序的编译器(即javac)。在JDK 1.0时代,JDK 除了AWT(一种用于开发图形用户界面的API)外,其他的库并不完整。 1998年12月4日,Sun发布了Java的历史上最重要的一个JDK 版本: JDK 1.2(从这个版本开始的Java技术都称为Java 2)。这个版本标志着Java已经进入Java 2时代。这个时期也是Java飞速发展的时期。 1999年,Sun公司把Java 2 技术分成J2SE、J2EE和J2ME。其中J2SE (Java 2 Platform Standard Edition)为创建和运行Java程序提供了最基本的环境。J2EE(Java 2 Platform Enterprise Edition)和J2ME(Java 2 Platform Micro Edition)建立在J2SE 的基础上,J2EE为分布式的企业应用提供开发和运行环境,J2ME为嵌入式应用提供开发和运行环境。 在2000—2004年,Sun公司在JDK 1.3、JDK 1.4 中同样进行了大量的改进, 于2004年10月,Sun发布了人们期待已久的版本JDK 1.5,同时,Sun将JDK 1.5改名为J2SE 5.0。和JDK 1.4不同,J2SE 5.0的主题是易用,而JDK 1.4的主题是性能。Sun之所以将版本号1.5改为5.0,就是预示着J2SE 5.0较以前的J2SE 版本有着很大的改进。2005年Java十周年大会之后,J2SE、J2EE和J2ME三门技术又分别重新更名为Java SE、Java EE、Java ME。 2007年推出J2SE 6.0。J2SE 6.0不仅在性能、易用性方面得到了前所未有的提高,而且还提供了如脚本、全新API(Swing和AWT等API已经被更新)的支持。另外,J2SE 6.0是专为Vista而设计的,它在Vista上将会拥有更好的性能。2009年Oracle公司收购Sun公司。Oracle公司于2011年正式发布JDK 7,2014年正式发布了JDK 8。对于Java来说,这又是一个里程碑式的时刻。此次升级,最大的变化就是加入了Lambda表达式以及函数式接口。目前最新版本是JDK 12。 随着Internet在全世界范围内的广泛流行,以及在各个领域的渗透,Java语言已被各行各业的人士所接受。 1.2.2Java语言的特点 Java作为一种面向对象语言,具有自己鲜明的特点,包括简单性、面向对象性、解释执行、可移植性和平台无关性、安全性、多线程、健壮性、分布式、高性能、动态性等特点,因此日益成为图形用户界面设计、Web应用、分布式网络应用等软件开发中方便高效的工具。 1. 简单性 由于Java最初是对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java是在C、C++的基础上开发的,继承了C和C++的许多特性,但摒弃了C++中烦琐、难以理解的、不安全的内容,如运算符重载、多重继承、指针,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作,减少了错误的发生。 2. 面向对象性 Java语言是完全面向对象的,并且对软件工程技术有很强的支持。Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;类提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。 3. 解释执行 Java程序的运行需要解释器(也称Java虚拟机, JVM)。Java程序在Java平台上被编译为字节码(.class的文件),字节码是独立于计算机的。Java解释器将字节码翻译成目标机器上的机器语言,能在任何具有Java解释器的机器上运行。 4. 可移植性和平台无关性 可移植性是指Java程序不必重新编译就能在任何平台运行。平台无关性也称为体系结构中立。Java程序在Java平台上被编译为体系结构中立的字节码, 利用Java虚拟机可以在任何台上运行该程序。这种途径适用于异构的网络环境和软件的分发。 Java语言是一种与平台无关、移植性好的编程语言。主要体现在两个方面,首先在源程序级就保证了其基本数据类型与平台无关;其次,Java源程序经编译后产生的二进制代码是一种与系统结构无关的指令集合,通过Java虚拟机,可以在不同的平台上运行。因此,Java语言编写的程序只要做较少的修改,甚至有时根本不需修改,就可以在Windows、Mac OS X、UNIX等平台上运行,充分体现了“一次编译,到处运行”的特性。 5. 安全性 Java作为网络编程语言,常被用于网络环境中,为此,Java提供一系列的安全机制以确保系统的安全。Java之所以具有高质量的安全性,主要是因为删除C++中的指针和释放内存等功能,避免了非法内存操作;提供了字节码检验器,以保证程序代码在编译和运行过程中接受层层安全检查,这样可以防止非法程序或病毒的入侵;提供了文件访问控制机制,严格控制程序代码的访问权限;提供了多种网络软件协议的用户接口,用户可以在网络传输中使用多种加密技术来保证网络传输的安全性和完整性。 6. 多线程 Java成为第一个在语言本身中显式地包含多线程的主流编程语言,而不再把线程看作底层操作系统的工具。Java实现了多线程技术,提供了简便的实现多线程的方法,并拥有一组复杂性较高的同步机制。在Java程序设计中,可以方便地创建多个线程,使在一个程序中可以同时执行多个小任务,这样很容易地实现了网络上的实时交互功能。多线程大大提升了程序的动态交互性能和实时控制性能。 7. 健壮性 Java致力于检查程序在编译和运行时的错误,强类型机制帮助人们检查出许多开发早期出现的错误。通过Java提供的异常处理机制来解决出现的异常,而不必像传统编程语言需要一系列指令来处理“除数为零”“Null指针操作”“文件未找到”等异常,有效地防止了系统崩溃。Java提供垃圾收集器,可以自动收集闲置对象占用的内存,防止程序员在管理内存时出现错误。 8. 分布式 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等适合分布式环境应用的类。 9. 高性能 与其他解释型的高级脚本语言相比,Java已具有专门的代码生成器,可以很容易地使用JIT(JustIn9Time)编译技术将字节码直接转换成高性能的本机代码。 10. 动态性 Java语言的设计目标之一是适用于动态变化的环境。Java程序需要的类能动态地被载入运行环境,也可以通过网络来载入所需要的类。另外,程序库可以自由为Java中的类增加新方法和新属性,而不影响该类的其他用户。 1.2.3Java语言的工作机制 对于大多数高级语言程序的运行,只需将程序编译或者解释为运行平台能理解的机器代码,即可被执行。然而这种机器代码对计算机处理器和操作系统都有一定的依赖性。例如,操作系统Windows能识别的机器语言不能被Linux所识别,因此为Windows操作系统所编写并编译或解释好的程序,无法直接放在Linux操作系统上运行。 为了解决在不同平台间运行程序的问题,Java的程序被执行需要经过两个过程,首先将Java 源程序进行编译,并不直接将其编译为与平台相对应的原始机器语言,而是编译为与系统无关的“字节码”。其次,为了要运行Java程序,运行的平台上必须安装有Java虚拟机JVM(Java Virtual Machine),将编译生成的字节码在虚拟机上解释执行并生成相应的机器语言。因此,不同的平台对应不同的虚拟机,通过Java虚拟机屏蔽了底层运行的差别,从而体现了Java的跨平台性。如图11所示,所有的.class文件都是在JVM上运行,再由JVM去适应各种不同的操作系统,通过JVN实现在不同平台上的运行。 图11Java工作机制 1.3任务11下载并安装JDK Java语言有两种开发环境: 一种是命令行方式下的JDK (Java Developers Kits,Java开发工具集);另一种是集成开发环境,如NetBeans、JBuilder、Eclipse、JCreator等。不同的开发环境在使用的方便性有所差异,但是无论在哪种开发环境下运行Java程序,都必须首先安装JDK。JDK 是Sun公司对Java开发人员发布的免费软件开发工具包。 在Oracle 公司的网站www.oracle.com上可以下载JDK 的最新版。JDK 下载网址为http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载界面如图12所示。在安装界面提供了JDK 各版本的安装文件,选择相应操作系统平台的下载链接可以下载相应的安装文件。本书以官网发布的最新版JDK 12.0的下载及安装为例进行说明,如图13所示。 启动安装执行文件后显示如图14所示的安装向导,可以根据需要更改安装路径。如无特殊要求,可以连续单击“下一步”按钮,直至出现成功安装的界面,如图15所示。 根据向导的提示可以迅速方便地将JDK 安装在默认目录中,成功安装后该目录下将生成如下子目录。  bin目录: 该目录提供的是JDK 的工具程序,包括javac、java、javadoc、appletviewer等程序。  demo目录: 该目录下提供了Java编写好的示例程序。  jre目录: 该目录下的文件是JDK 自己附带的JRE资源包。  lib目录: 该目录下提供了Java工具所需的资源文件。图12JDK下载页面 图13JDK版本 图14启动JDK安装 图15JDK成功安装  src.zip资源包: 该资源包提供了API类的源代码压缩文件。如果要了解API某些功能的实现方法,可以查看这个文件中的源代码内容。 1.4任务12下载并安装Eclipse Eclipse是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目前由IBM牵头,围绕Eclipse项目已经发展成为一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational、Red Hat及Sybase公司,最近Oracle公司也计划加入Eclipse联盟中。Eclipse可以直接从www.eclipse.org网站下载到最新版本,如图16所示。 图16 Eclipse网站主页本书以官网发布的Eclipse最新版本为例,安装向导界面如图17所示,选择Eclipse IDE for Java Developers。 安装成功后出现如图18所示界面。 图17Eclipse安装向导界面 图18Eclipse成功安装界面 启动Eclipse之后会询问用户建立工作空间的路径,如图19所示。 图19建立工作空间的路径