Java程序设计基础(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-24 09:45:01

点击下载

作者:欧楠 黄海芳

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Java程序设计基础

Java程序设计基础试读:

前言

Java是Sun公司推出的能够跨平台、可移植性的一种面向对象的编程语言。自面世以来,Java凭借其易学易用、功能强大的特点得到了广泛的应用。其强大的跨平台性使Java程序可以运行在大部分系统平台上,真正做到“一次编写,到处运行”。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等,已成为应用范围最广泛的开发语言之一。

本书内容面向Java语言的初学者,力求从实践出发,由浅入深地讲解知识点,从基本理论知识入手,结合面向对象编程的特点,辅以大量的实际案例和小程序,力求让读者充分理解并能掌握Java的具体用法。

全书共8章,基础部分介绍了Java开发环境的构建、Java语言的语法基础、数组等,编程进阶部分介绍了包括面向对象程序设计的封装性、继承性和多态性,抽象类和接口,以及访问权限和异常处理。

本书主要特点如下。1.实际项目开发与理论教学紧密结合

为了使读者能快速地掌握Java的相关技术并按实际项目开发要求熟练运用,本书在重要的章节知识点中都安排了实践任务环节,通过贴近实际应用的任务环节让读者更快理解和掌握知识要点。2.合理、有效地组织教学内容

本书按照由浅入深、循序渐进的原则,合理安排了所有章节的递进顺序,各个章节环环相扣,逐层递进,让读者从一位初学者逐步进入到入门者的行列中。

本书由湖南信息职业技术学院计算机工程学院的欧楠、黄海芳、谭建武、李雄、余国清、彭顺生、谢琴、邓慈云,负责整体设计,编写与统稿。其中,黄海芳编写第1章和第2章,彭顺生编写第3章,欧楠编写第4章和第5章,谭建武编写第6章,李雄编写第7章,余国清编写第8章,谢琴和邓慈云参与了本书的部分编写工作,在此表示衷心的感谢。

由于编者水平有限,书中难免出现错误和疏漏之处,敬请读者批评指正。编者2017年6月第1章 Java语言概述学习目标

·了解Java语言的发展历史

·了解Java语言的主要特点

·掌握Java语言的开发环境的搭建方法

·了解主要的Java语言的集成开发工具

·掌握使用记事本工具编译并执行Java程序

Java语言是Sun公司开发的一种网络编程语言,拥有卓越的技术特性、丰富的编程接口(类库)、多款功能强大的开发工具。全球Java程序员已超过200万,超过100亿台设备正在使用Java技术,并获得主流IT厂商的大力支持。作为当今主流的软件开发平台,Java在企业级应用开发领域中占有过半的市场份额,从当前的应用现状和发展前景看,Java已经成为软件开发从业人员的首选技术。

Java是一种理想的面向对象的网络编程语言。它的诞生为IT产业带来了一次变革,也是软件的一次革命。Java程序设计是一个巨大而迅速发展的领域,有人把Java称作是网络上的“世界语”。

本章将简要介绍Java语言的产生背景、特点、Java程序的基本结构以及开发Java程序的运行环境和基本开发方法。1.1 Java语言简介1.1.1 Java语言产生的背景

1991年4月,Sun公司的James Gosling(见图1-1)领导的“绿色计划”(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行。而“绿色计划”项目组的成员一开始使用C++语言来完成这个项目,这是由于该项目组的成员都具有C++背景,所以他们首先把目光锁定了C++编译器。Gosling首先改写了C++编译器,但很快他就意识到C++存在很多不足,需要研发一种新的语言来替代它。

Gosling开发了一种新的语言——“Oak”(橡树)语言,该语言保留了与C++相似的语法,加入了特有的自动垃圾回收机制,改进内存资源管理,去掉了C++中的指针以减少程序出错的概率,同时设计成面向对象。“Oak”语言是一种可移植性语言,并且独立于平台运行,能够在不同的硬件平台上运行。

由于在申请商标时发现,“Oak”已被一家显卡制造商注册,因此1995年1月,“Oak”被更名为Java。这个名字的产生既不是根据语言本身的特色来命名,也不是由几个英文单词的首字母拼成,更不是由人名或典故而来,而是来自于印度尼西亚一个盛产咖啡的岛名,中文名叫爪哇,意为为世人端上一杯热咖啡。许多程序设计师从所钟爱的热腾腾的香浓咖啡中得到灵感,因而热腾腾的香浓咖啡也就成为Java语言的标志,如图1-2所示。图1-1 James Gosling图1-2 Java标志

1995年5月23日Java正式发布,此后人们对Java的兴趣和重视证明了这项技术将是未来网络计算的主流技术。提示

Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称多与咖啡有关:如JavaBeans(咖啡豆)、NetBeans(网络豆)和ObjectBeans(对象豆)等。

Java的发展历程见表1-1。表1-1 Java的发展历程

从表1中可以看出一个非常有意思的现象,就是JDK的每一个版本号都使用一个开发代号表示(就是表中的中文名)。而且从J2SE 1.2.2开始,主要版本(如J2SE 1.3,J2SE 1.4,Java SE 5.0)都是以鸟类或哺乳动物来命名的,而它们的bug修正版本(如J2SE 1.2.2,J2SE 1.3.1,J2SE 1.4.2)都是以昆虫命名的。

虽然在1998年之前,Java被众多的软件企业所采用,但由于当时硬件环境和JVM的技术原因,它的应用却很有限。当时Java主要只使用在前端的Applet以及一些移动设备中。然而这并不等于Java的应用只限于这些领域。1999年6月,Sun公司发布Java的三个版本:标准版(Java SE,以前是J2SE)、企业版(Java EE以前是J2EE)和微型版(Java M E,以前是J2ME),这标志着Java已经吹响了向企业、桌面和移动3个领域进军的号角。

2009年04月20日,Oracle(甲骨文)公司以74亿美元收购Sun公司,取得Java的版权。1.1.2 Java语言的特点

Sun公司的《Java白皮书》对Java做了如下定义“Java:Asimple,object-oriented,distributed,interpreted,robust,secure,architecture-neutral,portable,high-performance,multi-threaded,and dynam iclanguage.”(Java:一种简单的、面向对象的、分布式的、解释执行的、健壮的、安全的、结构中立的、可移植的、高效率的、多线程的和动态的语言)。Sun公司对Java的定义充分展示了Java的如下特点。1.跨平台性

关于Java程序,有一句口号式的经典描述——“Write once,Run anywhere”,其中文意思是“一次编写,到处运行”。这指的正是Java语言跨平台的特性。用商业术语来说,这句话代表Java技术最重要的承诺是只要写一次程序(即可被编译为字节码在Java平台上运行)便能在任何地方运行该应用程序。

Java源代码被编译成一种结构中立的中间文件格式(字节码文件),该中间代码在机器上能直接执行,不管是什么型号的机器,操作系统是哪种。但有一个必要的前提:那台运行Java程序的机器上需要预先安装Java运行系统。Java运行系统又称为Java虚拟机(简称JVM),它可以从www.oracle.com网站免费下载,不同的操作系统需要安装对应的JVM版本。而Java的跨平台特性即通过JVM实现。2.面向对象

Java语言是一门面向对象的语言,它比C++等语言新,一张白纸上可以画最美好的图画,20世纪90年代初它就是这样一张白纸,以James Gosling为首的“绿色计划”项目团队给它画的那幅画是完全面向对象,一切皆为对象。

什么是对象呢?对象是可存储数据的变量和可提供操作的方法的集合。对象的核心就是两项:变量和方法。每个对象在内存中都占据独立的空间,每个对象都拥有类型,对象从类型创建而来。3.多线程

Java提供了专门的类,可方便地用于多线程编程。多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。

多线程的程序可同时执行多个任务,多线程程序具有更好的交互性、实时性。4.内存垃圾自动回收

在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其他对象;而在Java中,JVM的一个系统级线程可以监督对象,它可以发现对象何时不再被使用,原先分配给该对象的内存即成为了垃圾,JVM系统线程会释放该内存块,对象即被销毁,内存垃圾就被自动回收。

事实上,除了释放没用的对象,Java垃圾收集也可以清除内存碎片。JVM将经过碎片整理后的内存分配给新的对象。5.简洁有效

Java语言的语法大多基于C++,但Java更加严谨、简洁。这体现在如下方面:

①Java去除了C++中一些难以理解、容易混淆的因素,如头文件、指针、结构体等;避免了赋值语句与逻辑运算语句的混淆;避免了隐藏变量带来的困惑,如“if(a=3)…;”,在C++中是没问题的,而在Java中是错误的;取消了多重继承这一复杂的继承机制。

②Java提供了对内存的自动管理:内存分配、内存释放。

③Java提供了丰富的类库,有利于软件开发的高效和标准化。6.健壮且安全

Java程序首先要通过编译环节,而Java有着最严格的“编译器”,可在编译阶段尽早发现错误,只有纠错完毕才能编译成功,生成字节码文件。这是健壮性的一个保证。

字节码文件通过JVM解释执行,类装入器负责装入运行一个程序需要的所有类,确定整个可执行程序的内存布局。字节码校验器对装入的代码进行检查,校验器可发现操作数栈溢出、非法数据类型转换等多种错误。解释执行的机制是又一个健壮保证。

使用Java的另一个好处是它的安全性功能,Java语言与平台都是以安全性为基本构建出来的。Java平台允许用户在网络上下载非置信的程序代码并在安全的环境下运行它,因此该程序代码不会造成任何的伤害。它无法使用病毒来侵害宿主计算机系统,也无法有从硬盘中读取或写入任何文件等其他的动作。这样的能力让Java更显示出其独特性与安全性。

Java语言与平台的安全性漏洞已经由世界各地的专家协助修正过了,这些与安全性有关的漏洞,包括了会造成相当程度伤害的程序错误,都已经被发现且修正过了。到目前为止,没有任何一个主流的平台能提供像Java所能够保证的安全性,也没有人敢保证将来都不会有任何Java安全上的漏洞问题,即使Java的安全性不够完美,但它已经被证明强壮到足以解决目前所可能遇到的所有威胁。1.1.3 Java语言的运行平台

所谓平台(Platform)是软件运行的软件和硬件环境,目前主流平台有Windows、Linux、UN IX、Solaris及M ac O S等,都是操作平台和硬件平台的混合。Java平台与这些操作系统平台不同,Java是一种运行于其他硬件平台上的纯软件平台。

Java平台包括两个部分:

①Java虚拟机(Java Virtual M achine,JVM);

②Java应用程序编程接口(Java Application Programming Interface,API)

Java虚拟机是由软件虚拟的计算机,它是Java平台的核心,有自己的指令格式和可执行文件。Java虚拟机在运行时并不能直接操控硬件,如它不能直接控制C PU或直接访问物理内存,而是通过调用底层基于硬件平台(如Windows)的功能来实现的。因此,Java程序之所以能够实现跨平台运行,是因为它根本不直接运行在任何底层平台上,而是需要它在哪里运行,就在哪里事先准备好自己的Java平台,如图1-3所示。图1-3 Java平台工作原理

Java应用程序编程接口是一个开发好的软件组件的集合,提供了许多有用的功能。这些软件组件被分成不同的相关类和接口的类库,并称为包。在Java程序的开发中,这些包能够被程序员导入和使用。

从Java 1.2开始,Java平台针对不同的市场目标和设备,划分为J2EE、J2ME和J2SE。

J2EE(Java 2 Enterprise Edition,Java2平台企业版):主要是为企业计算提供应用服务器的运行和开发平台。J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,具有良好的兼容性,解决过去企业后端使用的信息产品之间因无法兼容而导致企业内部或外部难以互通的窘境。

J2ME(Java 2 Micro Edition):J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备,为消费电子产品提供一个Java的开发与运行平台,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等。J2ME技术在1999年的Java One Developer Conference大会上正式推出,它将Java语言与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。

J2SE(Java 2 Standard Edition):主要是为台式机和工作站提供一个开发和运行的平台,定位在客户端,主要用于桌面应用软件的编程。1.1.4 实践任务——配置运行环境

要进行Java平台上的应用开发,必须首先准备好开发和运行环境。步骤1 下载并安装JDK

Java软件开发工具箱(Java Development K its,JDK)包括了运行的虚拟机、编译器等所有开发过程中需要的工具。

·Java虚拟机程序:负责解析和运行Java程序。在各种操作系统平台上都有相应的Java虚拟机程序。在Windows操作系统中,该程序的文件名为java.exe。

·Java编译器程序:负责编译Java源程序。在Windows操作系统中,该程序的文件名为javac.exe。

·JDK类库:提供了最基础的Java类及各种实用类。

从Oracle公司的主页http://www.oracle.com/technetwork/java/javase/downloads/index.html免费下载,JDK不同版本称谓和编号上存在的细小差异可能让初学者感到困惑。输入下载地址,打开图1-4所示的下载页面,选择【Accept License Agreement】,接受许可协议,再根据自己的操作系统类型选择JDK的版本类型。对于32位操作系统,需要选择x86后缀的JDK,对于64位操作系统,选择x64或64-bit类型的版本。

Windows版的JDK安装程序是一个单一的.exe文件,运行该文件并在安装提示的各步骤中选择默认设置即可,此时系统会将JDK安装在默认的系统路径下,安装完成后可以在路径C:\Program Files\Java下找到新安装的JDK和JRE工作目录。也可在安装过程中选择将JDK安装到其他指定的路径上,如D:\Java。步骤2 JDK组成结构

安装后的JDK工作目录结构如图1-5所示。图1-4 JDK下载页面

因为JDK默认自带了JRE,因此,在完成的安装目录Java中找到JDK和JRE两个文件夹,其中JDK放置了与Java开发包相关的文件,JRE放置的是与运行环境相关的文件。图1-5 JDK 8.0工作目录结构

·bin:binary的简写,Java开发工具下面存放的是Java的各种可执行文件,包括编译器、虚拟机、调试器、文档和工具、归档工具、反编译工具等;

·db:Java DB数据库;

·include:需要引入的一些头文件,主要是C和C++的,JDK本身是通过C和C++实现的;

·jre:Java运行时环境(JRE),包括Java虚拟机(JVM)、类库和其他资源文件,此JRE只供JDK使用;

·lib:library的简写,JDK所需要的一些资源文件和资源包。

·src.zip:仅仅是Java类库的源代码,其中没有包括JDK的源代码、Java底层类库源代码、JVM源代码,以及本地方法的源代码。步骤3 测试安装

安装完成后,如何检查是否安装成功呢?(1)选择【所有程序】|【附件】|【命令提示符】或输入“cmd”,打开命令提示符窗口。(2)在命令提示符窗口中输入命令:“java–version”。(3)如果安装成功,那么系统将显示图1-6所示的信息。图1-6 验证JDK是否成功安装步骤4 JDK的配置

安装完JDK后,还需要设置相应的环境变量,以便系统知道SDK所在的安装路径(Path),才能正常使用。(1)选择【我的电脑】图标、右键单击弹出快捷菜单,单击【属性】|【高级系统设置】打开【系统属性】对话框,如图1-7所示。图1-7 【系统属性】对话框(2)单击【环境变量】按钮,打开【环境变量】对话框,如图1-8所示。在用户变量栏单击【新建】按钮,创建新的环境变量如下:

其中输入的C:\Program Files\Java\jdk1.8.0_65\bin是SDK的安装目录,如图1-9所示。图1-8 【环境变量】对话框图1-9 【编辑用户变量】对话框(3)设置完环境变量后即可在命令行窗口中进行测试。

选择【所有程序】|【附件】|【命令提示符】或输入“cmd”,打开命令提示符窗口。

在命令提示符窗口中任意路径下输入如下命令“javac”,然后按【Enter】键,如果出现图1-10所示的提示信息,说明环境变量Path设置成功,JDK已可正常使用。图1-10 javac命令提示

建议安装JDK的同时获取JDK的API使用说明文档,该文档可以直接从Oracle 公司网站免费下载,是一个.zip 格式的压缩文件包,只需解压缩到本地即可。1.2 使用命令行开发Java程序

传统的Java应用程序主要分为两类:Application(应用程序)和Applet(小应用程序)。Application可以独立运行,Applet只能嵌入到Web页面中运行。无论哪种应用程序,它的开发流程都只需3个基本步骤:编写源代码程序、编译、运行。1.2.1 Java程序运行过程

Java程序的运行过程如图1-11所示。(1)编写源文件

Java语言编写的程序代码首先以纯文本文件形式保存,文件的扩展名(后缀)为.java,这些程序文件称为“源文件”(Source File),其中的程序代码也称“源代码”(Source Code)。(2)编译Java源文件

将源代码通过Java编译器编译成字节码(Byte Code)文件,其扩展名.class。字节码文件是Java编译器专门针对Java虚拟机生成的,其中的指令格式(字节码指令)可以由虚拟机识别和处理,因而字节码文件是Java平台中的可执行文件,是JVM的机器语言,对其他平台来说,字节码文件的指令格式与平台无关。图1-11 Java程序运行过程

编译成功后将生成一个或多个字节码文件,每个字节码文件对应源程序中定义的一个类,该文件的名字是它所对应的类的名字,并以.class为统一的后缀名。(3)运行Java程序

运行时,Java虚拟机中的运行时解释器(Runtime Interpreter)模块专门负责字节码文件的解释执行。运行时解释器先将字节码指令解释成所在的底层平台(如Windows)能够识别处理的指令格式,即本地机器码,然后再委托/调用底层平台的功能来执行,如图1-12所示。类似于国际会议中的同声翻译,逐条指令进行,即解释一条执行一条。图1-12 Java跨平台运行

这就意味着用户不需要为程序分别创建Windows、M acintosh及UN IX的版本,一个Java程序便可以在所有的操作系统上运行,也充分解释了Sun公司对Java的宣传口号“一次编写,到处运行”。1.2.2 注释

与其他高级编程语言类似,Java语言也支持在源文件中添加注释(Comment)。注释是对源代码起解释说明作用的文本信息,适当的注释可以增强程序代码的可读性和可维护性。Java语言支持3种格式的注释。

①以“//”开头,注释内容从“//”开始到本行行尾结束;

②以“/*”开头,直到遇到“*/”结束,注释内容可以跨行,适用于内容较长的注释;

③以“/**”开头,直到遇到“*/”结束,注释内容可以跨行,使用JDK中提供的文档化工具Javadoc可以将这种注释的内容提取出来自动生成软件说明文档。1.2.3 实践任务——记事本编辑源程序

使用任何文本编辑器都能够编辑Java源文件。步骤1 创建源文件

在Windows选择【所有程序】|【附件】|【记事本】,启动记事本程序,然后在一个新建的记事本文件中输入如下代码:

接下来在记事本程序菜单中选择【文件】|【另存为】,在弹出的【另存为】对话框中指定文件的存储路径和文件名。其中存储路径可以任意设定,如D:\java,而文件名则必须为MyProgram.java,同时选择保存类型为“所有文件”、编码方式为“ANSI”,如图1-13所示,单击【保存】按钮并退出记事本程序。提示

·Java 语言拼写上是大小写敏感的,例如MyProgram 和myprogram 是两个完全不同的类名;

·一个源文件可以定义多个Java 类,但其中最多只能有1 个类被定义为public 类;

·如果源文件中包含了public 类,则源文件必须与该public 类同名(扩展名为.java)。步骤2 使用Javac编译源文件

选择【所有程序】|【附件】|【命令提示符】启动命令行窗口,切换当前工作路径到源代码所在的目录下,如D:\java。图1-13 源文件保存设置

在【命令提示符】窗口中输入如下命令:

其效果如图1-14所示。图1-14 编译源文件

编译正常结束时系统不会显示任何信息,但会在源文件所在路径下生成一个名为MyProgram.class的字节码文件。如提示编译出错,则请检查先前各环节操作,并在排除错误后重新编译。步骤3 使用java命令运行程序

在【命令提示符】窗口中字节码文件MyProgram.class所在路径下执行命令:

即可得到图1-15所示的运行结果。提示

由于虚拟机运行的总是字节码文件,因此在执行java命令时,必须省略文件扩展名.class。

需要说明的是,之所以能在任意路径下执行编译命令javac和运行命令java,是因为环境变量保存了这两个程序文件的存储路径。同样,在启动虚拟机加载指定字节码文件的时候,也可以使用环境变量CLASSPATH来保存.class文件的存储路径,这样就可以在任意路径下找到文件并运行。

创建一个新的环境变量CLASSPATH,设置如下:图1-15 运行结果

其中,“.”代表当前路径,即执行javac或java命令时的路径。多个不同的类文件存储路径中间须用英文分号“;”分隔开。这样就可以在任意路径下直接运行程序。1.3 使用Eclipse开发Java程序

除了Windows自带的记事本之外,还有很多专用的程序编辑器,如U ltraEdit、Notepad++和Sublime Text2等。但这些编辑器从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发。为了快速地开发Java程序,可以选择集成开发环境(Intergrated Development Environment,IDE)。1.3.1 Java集成开发工具介绍

开发Java程序时需要快速生成源代码文件,再进行编辑,生成可执行的.class文件。IDE提供了Java开发从配置、编写、调试到运行及测试的全部内容,典型的有IntelliJ、Eclipse、MyEclipse、Borland JBuilder、NetB eans及BlueJ等。1.IntelliJ

IntelliJ是由JetB rains公司开发的一款综合的Java编程环境,被许多开发人员和行业专家誉为市场上最好的IDE,如图1-16所示。它提供了一系列最实用的工具组合,包括智能编码辅助和自动控制,支持J2EE、Ant、JUnit和CVS集成,非平行的编码检查和创新的GUI设计器。IntelliJ把Java开发人员从一些耗时的常规工作中解放出来,显著提高了开发效率。IntelliJ具有如下特点,包括运行更快速,可生成更好的代码;持续的重新设计和日常编码变得更加简易,与其他工具可完美集成;很高的性价比。在4.0版本中支持G enerics、BEA Web Logic集成、改良的CVS集成以及GUI设计器。2.Eclipse

Eclipse是一个开放源代码的、基于Java的可扩展开发平台,如图1-17所示。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。之后,包括Oracle在内的许多大公司也纷纷加入了该项目,Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。图1-16 IntelliJ图1-17 Eclipse3.MyEclipse

MyEclipse是在Eclipse的基础上加上自己的插件开发出的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发,如图1-18所示。MyEclipse的功能非常强大,所支持的产品也十分广泛,尤其是对各种开源产品的支持相当不错。图1-18 MyEclipse4.JBuilder

JBuilder是B orland公司开发的针对Java的开发工具,如图1-19所示,使用JBuilder可以快速、有效地开发各类Java应用。JBuilder的核心有一部分采用了VCL技术,使得程序的条理非常清晰,就算是初学者也能完整地看完整个代码。JBuilder另一个特点是简化了团队合作,它采用的互联网工作室技术使不同地区甚至不同国家的人联合开发一个项目成为了可能。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载