Java编程指南——语法基础、面向对象、函数式编程与项目实战(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-11 07:26:52

点击下载

作者:关东升

出版社:清华大学出版社

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

Java编程指南——语法基础、面向对象、函数式编程与项目实战

Java编程指南——语法基础、面向对象、函数式编程与项目实战试读:

前言

Java语言经过20多年不断发展,变得更加成熟、更加易用。多年来Java语言一直是非常受欢迎的语言,这也说明了Java语言的生命力。Java语言最开始用于设计开发机顶盒,经过发展,目前主要用于Java Web应用、企业级应用、Android应用和桌面应用开发。书中源代码1.源代码下载

书中包括了200多个完整示例,以及一个完整的案例项目源代码,读者可以到本书网站http://www.zhijieketang.com/group/9下载。2.源代码目录结构

作为一本介绍编程的书,本书提供很多示例源代码。下载本书源代码并解压,会看到如图0-1所示的目录结构。图0-1中的ch5.6表示第5.6节的示例代码,A.3.2表示附录A中3.2节,B表示附录B中的代码,每个文件夹都是一个Eclipse项目。图0-1 示例源代码目录结构3.导入Eclipse源代码项目

如何将Eclipse源代码项目导入到自己的Eclipse中呢?可以在Eclipse工具中选择“文件”→“导入”命令,打开如图0-2所示的导入项目对话框,在对话框中选中General下的“现有项目到工作空间中”,然后单击“下一步”按钮进入下一个对话框。如图0-3所示,单击“选择根目录”后面的“浏览”按钮选择源代码目录,这样会找到该目录下所有的Eclipse项目,根据自己的需要选中项目,然后单击“完成”按钮,将项目导入到Eclipse中。图0-2 导入项目对话框(1)图0-3 导入项目对话框(2)

另外,笔者推荐在导入时将项目复制到自己的工作空间中,这需要选中如图0-3所示“选项”选项区域中的“将项目复制到工作空间中”复选框。勘误与支持

我们在网站http://www.zhijieketang.com/group/9中建立了一个勘误专区,可以及时地把书中的问题、失误和纠正反馈给广大读者。如果读者发现了任何问题,均可以在网上留言,也可以发送电子邮件到eorient@sina.com,我们会在第一时间给予回复。致谢

在此,感谢清华大学出版社的盛东亮编辑给我们提供了宝贵的意见。本书主要由关东升编写。此外,赵志荣、赵大羽、关锦华、闫婷娇、关秀华、王馨然、闫喜华和赵浩丞参与了部分内容的写作。感谢赵浩丞手绘了书中全部草图,并从专业的角度修改书中图片,力求更加真实完美地奉献给广大读者。

由于时间仓促,书中难免存在不妥之处,请读者见谅,并提出宝贵意见。关东升2019年4月第1章 绪论

Java诞生到现在已经有20多年了,但是Java仍然是非常热门的编程语言之一,很多平台使用Java语言开发。表1-1所示的是TIOBE社区发布的2017年5月和2018年5月的编程语言排行榜,可见Java语言的热度,或许这也是很多人选择学习Java的主要原因。表1-1 TIOBE编程语言排行榜1.1 Java语言的发展历史

在正式学习Java语言之前,读者有必要先来了解一下Java的历(1)史。1990年底,美国Sun公司成立了一个叫作Green的项目组,该Green项目主要目标是为消费类电子产品开发一种分布式系统,使之能够操控电冰箱、电视机等家用电器。

消费类电子产品种类很多,包括掌上电脑(个人数字助理,Personal Digital Assistant, PDA)、机顶盒、手机等,这些消费类电子产品所采用的处理芯片和操作系统基本上都是不相同的,存在跨平台等问题。开始时,Green项目组考虑采用C++语言来编写消费类电子产品的应用程序,但是C++语言过于复杂、庞大,而且安全性差。于是他们设计并开发出一种新的语言——Oak(橡树)。Oak这个名字来源于Green项目组办公室窗外的一棵橡树。由于Oak在进行注册商标时已经被注册,他们需要为这个新语言取一个新的名字。有一天,几位项目的成员正在咖啡馆喝着Java(爪哇)咖啡,其中一个人灵机一动说就叫Java怎么样?马上得到了其他人的同意,于是这个新的语言取名为Java。

Sun公司在1996年发布了Java 1.0,但是Java 1.0开发的应用速度很慢,并不适合做真正的应用开发,直到Java 1.1速度才有了明显的提升。Java设计之初是为消费类电子产品开发应用,但是真正使Java流行起来是在互联网上的Web应用程序。20世纪90年代正处于互联网发展起步阶段,互联网上设备差别很大,需要应用程序能够跨平台运行,Java语言就具有“一经编写到处运行”的跨平台能力。

到本书编写时,Oracle公司已经发布了Java 10。Java在20多年的发展过程中,与时俱进,为了适应时代的需要,经历过两次重大的版本升级:一个是Java 5,Java 5提供了泛型等重要的功能;另一个是Java 8,Java 8提供了Lambda表达式和枚举类等重要的功能。1.2 Java语言的特点

Java语言能够流行起来,并长久不衰,得益于Java语言有很多优秀的关键特点。这些特点包括简单、面向对象、分布式、结构中立、可移植、解释执行、健壮、安全、高性能、多线程和动态。下面给出详细解释。1.简单

Java设计目标之一就是能够方便学习,使用简单。由于当初C++程序员很多,介绍C++语言的书籍也很多,所以Java语言的风格设计成为类似于C++语言风格,但Java摒弃了C++中容易引发程序错误的地方,如指针、内存管理、运算符重载和多继承等。一方面C++程序员可以很快迁移到Java;另一方面没有编程经验的初学者也能很快学会Java。2.面向对象

面向对象是Java最重要的特性。Java是彻底的、纯粹的面向对象语言,在Java中“一切都是对象”。Java完全具有面向对象的三个基本特性:封装、继承和多态,其中封装性实现了模块化和信息隐藏,继承性实现了代码的复用,用户可以建立自己的类库。而且Java采用的是相对简单的面向对象技术,去掉了多继承等复杂的概念,只支持单继承。3.分布式

Java语言就是为分布式系统而设计的。JDK(Java Development Kits, Java开发工具包)中包含了支持HTTP和FTP等基于TCP/IP协议的类库。Java程序可以凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。4.结构中立

Java程序需要在很多不同网络设备中运行,这些设备有很多不同类型的计算机和操作系统。为能够使Java程序在网络的任何地方运行,Java编译器编译生成了与机器结构(CPU和操作系统)无关的字节码(byte-code)文件。任何类型的计算机,只要可以运行Java虚拟机,字节码文件就可以在该计算机上运行。5.可移植

体系结构的中立也使得Java程序具有可移植性。针对不同的CPU和操作系统,Java虚拟机有不同的版本,这样就可以保证相同的Java字节码文件可以移植到多个不同的平台上运行。6.解释执行

为实现跨平台,Java设计成为解释执行的,即Java源代码文件首先被编译成为字节码文件,这些字节码本身包含了许多编译时生成的信息,在运行时Java解释器负责将字节码文件解释成为特定的机器码进行运行。7.健壮

Java语言是强类型语言,它在编译时进行代码检查,使得很多错误能够在编译期被发现,不至于在运行期发生而导致系统崩溃。

Java摒弃了C++中指针操作,指针是一种强大的技术,能够直接访问内存单元,但同时也很复杂,如果指针操控不好,会引起导致内存分配错误、内存泄漏等问题。而Java中则不会出现由指针所导致的问题。

内存管理方面,C/C++等语言采用手动分配和释放,经常会导致(2)内存泄漏,从而导致系统崩溃。而Java采用自动内存垃圾回收机制,程序员不再需要管理内存,从而减少内存错误的发生,提高了程序的健壮性。8.安全

在Java程序执行过程中,类装载器负责将字节码文件加载到Java虚拟机中,这个过程中由字节码校验器检查代码中是否存在着非法操作。如果字节码校验器检验通过,由Java解释器负责把该字节码解释成为机器码进行执行,这种检查可以防止木马病毒。

另外,Java虚拟机采用的是“沙箱”运行模式,即把Java程序的代码和数据都限制在一定内存空间里执行,不允许程序访问该内存空间外的内存。9.高性能

Java编译器在编译时对字节码会进行一些优化,使之生成高质量的代码。Java字节码格式就是针对机器码转换而设计的,实际转换时相当简便。Java在解释运行时采用一种即时编译技术,可使Java程序的执行速度提升很大。经过多年的发展,Java虚拟机也有很多改进,这都使得Java程序的执行速度提升很大。10.多线程

Java是为网络编程而设计的,这要求Java能够并发处理多个任务。Java支持多线程编程,多线程机制可以实现并发处理多个任务,互不干涉,不会由于某一任务处于等待状态而影响了其他任务的执行,这样就可以容易地实现网络上的实时交互操作。11.动态

Java应用程序在运行过程中可以动态地加载各种类库,即使更新类库也不必重新编译使用这一类库的应用程序。这一特点使之非常适合于在网络环境下运行,同时也非常有利于软件的开发。1.3 Java平台

Java不仅是编程语言,而且是一个开发平台,Sun公司根据Java应用领域的不同将Java分成三个平台:Java SE、Java EE和Java ME。1.3.1 Java SE

Java SE是Java Standard Edition的简写,主要用于为台式机和工作站的桌面应用(application)程序。Java SE是其他平台的基础,本书主要介绍Java SE版本中的技术。

Java SE中主要包含了JRE(Java SE Runtime Environment, Java SE运行环境)、JDK(Java Development Kit, Java开发工具包)和Java核心类库。如果只是运行Java程序,不考虑开发Java程序,那么只安装JRE就可以了。在JRE中包含了Java程序运行所需要的Java虚拟机(Java Virtual Machine, JVM)。JDK中包含了JRE和一些开发工具,这些工具包括编译器、文档生成器和文件打包等工具。

另外,Java SE中还提供了Java应用程序开发需要的基本的和核心的类库,这些类库包括字符串、集合、输入/输出、网络通信和图形用户界面等。事实上,学习Java就是在学习Java语法和Java类库的使用。1.3.2 Java EE

Java EE是Java Enterprise Edition的简写,主要目的是为简化企业级系统的开发、部署和管理。Java EE是以Java SE为基础的,并提供了一套服务、API接口和协议,能够开发企业级分布式系统、Web应用程序和业务组件等,其中包括JSP、Servlet、EJB、JNI和Java Mail等。1.3.3 Java ME

Java ME是Java Micro Edition的简写,主要是面向消费类电子产品,为消费电子产品提供一个Java的运行平台,使得Java程序能够在手机、机顶盒、PDA等产品上运行。Java ME在早期的诺基亚塞班手机系统有很多应用,而现在的iOS和Android等智能手机中基本上没有它的用武之地。1.4 Java虚拟机

Java应用程序能够跨平台运行,主要是通过Java虚拟机实现的。如图1-1所示,不同软硬件平台Java虚拟机是不同的,Java虚拟机往下是不同的操作系统和CPU,使用或开发时需要下载不同的JRE或JDK版本。Java虚拟机往上是Java应用程序,Java虚拟机屏蔽了不同软硬件平台,Java应用程序不需要修改,不需要重新编译,直接可以在其他平台上运行。图1-1 Java虚拟机

Java虚拟机中包含了Java解释器,Java程序运行过程如图1-2所示,首先由编译器将Java源程序文件(.java文件)编译成为字节码文件(.class文件),然后再由Java虚拟机中的解释器将字节码解释成机器码去执行。图1-2 Java程序运行过程本章小结

本章首先介绍了Java的发展历史、Java语言的特点,然后介绍了Java三大平台,最后介绍了Java虚拟机。1.5 同步练习

1.Java语言的特点有哪些?

2.Java平台有哪些?(1)Sun公司创建于1982年,主要产品是工作站及服务器。1986年在美国成功上市,1992年Sun推出了市场上第一台多CPU台式机,1993年进入财富500强,1995年开发了Java语言,2010年被Oracle(甲骨文)公司收购。现在Java技术是由Oracle公司提供的。(2)在Java运行环境中,始终存在着一个系统级的线程,专门跟踪内存的使用情况,定期检测出不再使用的内存,并进行自动回收,避免了内存的泄漏,也减轻了程序员的工作量。第2章 开发环境搭建《论语•魏灵公》曰:“工欲善其事,必先利其器”,做好一件事,准备工作非常重要。在开始学习Java技术之前,先介绍如何搭建Java开发环境是非常重要的一件事情。

Oracle公司提供的JDK只是一个开发工具包,它不是一个IDE(Integrated Development Environments,集成开发环境),IDE的开发工具将程序的编辑、编译、调试、执行等功能集成在一个开发环境中,使用户可以很方便地进行软件的开发。Java开发IDE工具有很多,其中主要有Eclipse、IntelliJ IDEA和NetBeans等。2.1 JDK工具包

JDK工具包是最基础的Java开发工具,很多Java IDE工具,如Eclipse、IntelliJ IDEA和NetBeans等都依赖于JDK,也有一些人使用“JDK+文本编辑工具”编写Java程序。2.1.1 JDK下载和安装

截止本书编写完成为止,Oracle公司对外发布的是最新JDK 8。图2-1所示是JDK 8下载界面,它的下载地址是http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。其(1)(2)中有很多版本,支持的操作系统有Linux、Mac OS X、Solaris和Windows。注意选择对应的操作系统,以及32位还是64位安装的文件。

如果计算机是Windows 10 64位系统,则首先选中Accept License Agreement(同意许可协议)单选按钮,然后单击jdk-8u131-windows-x64.exe下载JDK文件。

下载完成后,双击jdk-8u131-windows-x64.exe文件就可以安装了,安装过程中会弹出如图2-2所示的内容选择对话框,其中“开发工具”是JDK内容;“源代码”是安装Java SE源代码文件,如果安装源代码,安装完成后会弹出如图2-3所示的src.zip文件,这就是源代码文件;公共JRE就是Java运行环境,这里可以不安装,因为JDK文件夹中也会有一个JRE,如图2-3所示的jre文件夹。2.1.2 设置环境变量

安装完成之后,需要设置环境变量,主要包括:图2-1 下载JDK8界面图2-2 安装内容选择对话框(1)JAVA_HOME环境变量,指向JDK目录,很多Java工具运行都需要JAVA_HOME环境变量,所以推荐添加该变量。(2)将JDK\bin目录添加到Path环境变量中,这样在任何路径下都可以执行JDK提供的工具指令。

首先需要打开Windows系统环境变量设置对话框,打开该对话框有很多方式,如果是Windows 10系统,则打开步骤是:右击屏幕左下角的Windows图标,单击“系统”菜单,然后弹出如图2-4所示的Windows系统对话框,单击左边的“高级系统设置”超链接,打开如图2-5所示的高级系统设置对话框。图2-3 JDK安装后的内容图2-4 Windows系统对话框图2-5 高级系统设置对话框

在如图2-5所示的高级系统设置对话框中,单击“环境变量”按钮打开环境变量设置对话框,如图2-6所示,可以在用户变量(上半部分,只配置当前用户)或系统变量(下半部分,配置所有用户)添加环境变量。一般情况下,在用户变量中设置环境变量。图2-6 环境变量设置对话框

在用户变量部分单击“新建”按钮,系统弹出对话框,如图2-7所示。将“变量名”设置为JAVA_HOME,“变量值”设置为JDK安装路径。最后单击“确定”按钮完成设置。然后追加Path环境变量,在用户变量中找到Path,双击Path,弹出Path变量对话框,如图2-8所示,追加%JAVA_HOME%\bin。注意,多个变量路径之间用分号(;)分隔。最后单击“确定”按钮完成设置。图2-7 设置JAVA_HOME图2-8 添加Path变量对话框

下面测试一下环境设置是否成功,可以通过在命令提示行中输入javac指令,看是否能够找到该指令,若弹出如图2-9所示的界面则说明环境设置成功。图2-9 通过命令提示行测试环境变量提示 打开命令行工具,也可以通过右击屏幕左下角的Windows图标,单击“命令提示符”菜单实现。2.2 Eclipse开发工具

Eclipse是著名的跨平台IDE工具,最初Eclipse是IBM公司支持开发的免费Java开发工具,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会管理。Eclipse本身也是一个框架平台,它有着丰富的插件,如C++、Python、PHP等开发其他语言的插件。另外,Eclipse是绿色软件,不需要写注册表,卸载非常方便。2.2.1 Eclipse下载和安装(3)

本书采用Eclipse 4.6版本作为IDE工具,Eclipse 4.6下载地址是http://www.eclipse.org/downloads/。如图2-10所示是Windows系统下载Eclipse的页面,单击DOWNLOAD 64 BIT按钮,会跳转到如图2-11所示的选择下载镜像地址页面,单击Select Another Mirror链接可以改变下载镜像地址,然后单击DOWNLOAD按钮开始下载。图2-10 Eclipse4.6下载页面

下载完成后的文件是eclipse-inst-win64.exe。事实上,eclipse-inst-win64.exe是安装各种Eclipse版本客户端,双击eclipse-inst-win64.exe弹出如图2-12所示的界面,选择Eclipse IDE for Java Developers进入如图2-13所示的界面。在该界面中,通过Installation Folder可以改变安装目录,选中create start menu entry单选按钮可以添加快捷方式到开始菜单,选中create desktop shortcut单选按钮可以在桌面创建快捷方式,设置完成后单击INSTALL按钮开始安装。安装完成后单击LAUNCH按钮可以启动Eclipse,如图2-14所示。图2-11 选择下载镜像地址图2-12 安装各种Eclipse版本客户端图2-13 Eclipse安装图2-14 Eclipse安装完成

在Eclipse启动过程中,会弹出如图2-15所示的选择工作空间(workspace)对话框,工作空间是用来保存工程的目录。默认情况下,每次Eclipse启动时都需要选择工作空间。如果觉得每次启动时都选择工作空间比较麻烦,则可以选中Use this as the default and do not ask again复选框,设置工作空间默认目录。初次启动Eclipse成功后,会进入如图2-16所示的欢迎界面。图2-15 选择工作空间图2-16 Eclipse欢迎界面2.2.2 安装中文语言包

Eclipse界面默认是英文,对于一些初学者,英文界面使用起来还是有一定困难的。Eclipse平台提供了一个语言包项目——Eclipse Babel Project(http://www.eclipse.org/babel/),Babel是一个插件,安装Babel插件可以通过离线或在线安装,Babel插件下载地址是http://www.eclipse.org/babel/downloads.php。如图2-17所示,单击Zipped p2 repository for Neon超链接下载离线包,注意离线包所支持的Eclipse版本。推荐在线安装,从图2-17所示页面中可见在线安装网址是http://download.eclipse.org/technology/babel/update-site/R0.15.1/neon。图2-17 下载Eclipse语言包

安装插件过程为:首先启动Eclipse,选择Help→Install New Software命令,系统弹出如图2-18所示的对话框。单击Add按钮弹出如图2-19所示对话框,在Location文本框中输入插件在线地址http://download.eclipse.org/technology/babel/update-site/R0.15.1/neon,如图2-20所示。图2-18 安装插件图2-19 插件地址图2-20 输入插件地址

确定输入内容后单击OK按钮关闭对话框,Eclipse通过刚刚输入的网址查找插件,如果能够找到插件,则弹出如图2-21所示的对话框,从中选择简体中文语言包。选择完成后单击Next按钮进行安装,安装过程中需要从网上下载插件,这个过程需要等一段时间。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载