书名:Java 编程从入门到精通
ISBN:978-7-115-65560-8
本书由人民邮电出版社发行数字版。版权所有,侵权必究。
您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
著 明日科技
责任编辑 谢晓芳
人民邮电出版社出版发行 北京市丰台区成寿寺路11号
邮编 100164 电子邮件 315@ptpress.com.cn
网址 http://www.ptpress.com.cn
读者服务热线:(010)81055410
反盗版热线:(010)81055315
本书从零基础用户自学Java的角度,通过通俗易懂的语言、精彩有趣的实例介绍使用Java进行程序设计需要掌握的知识。本书主要介绍了数据类型、运算符、流程控制语句、数组、面向对象编程、异常、字符串、常用类、泛型类、集合类和Swing程序设计等知识。本书结合具体实例讲解知识,代码有详细注释,使读者能够轻松领会 Java 程序设计的精髓,快速提高程序设计水平。
本书适合作为 Java 初学者、初级和中级程序员的自学用书,也适合作为大中专院校相关专业、软件开发培训机构的教材或参考用书。
Java语言(以下简称Java)通俗易懂,它的语法与C语言和C++语言的很接近。这成为很多C语言和C++语言程序员选择学习并且使用Java的主要原因。Java提供类、接口和继承等面向对象的特性。为了简单起见,Java对这些面向对象的特性进行了设置,使得它们在使用时有规矩可循。此外,Java还能够同时执行多个线程,并提供线程与线程之间的同步机制。综上所述,Java是简单的,是面向对象的,是多线程的。让我们从阅读本书开始,走进Java的世界。
本书共12章,首先介绍Java开发环境的搭建、数据类型、运算符、流程控制语句等基础知识,然后讨论数组、面向对象编程、异常、字符串,最后讲述常用类、泛型类、集合类和Swing程序设计。
本书具有以下特点。
结构合理,符合自学要求。本书所讲内容既避开了晦涩难懂的理论知识,又覆盖了编程所需的各方面技术,其中一些知识是非常实用的。
循序渐进,轻松上手。本书内容的讲解从零起步,循序渐进,可全面提高读者的学、练、用能力。本书使用了大量实用的实例,可以使读者轻松上手,快速掌握所学内容。
实例经典,贴近实际。本书介绍的内容和实例多数源于实际开发,实践性非常强,也非常经典,只需做少量修改,即可用于实际项目开发。此外,本书所选实例突出实用性,注重培养读者利用Java解决实际问题的能力。
学练结合,巩固知识。本书每章后面都设置了“动手练一练”模块,可帮助读者巩固本章所学的理论知识,提升动手编程能力。
本书的读者对象如下:
初学编程的自学者;
编程爱好者;
大中专院校的老师和学生;
相关培训机构的老师和学员;
初级和中级程序开发人员;
程序维护及管理人员。
本书由明日科技组织编写,参加编写的有王小科、高春艳、赛奎春、王国辉、申小琦、赵宁、何平、张鑫、周佳星、李菁菁、李磊、冯春龙、庞凤、谭畅、刘媛媛、胡冬、宋磊、张宝华、杨柳等。由于编者水平有限,疏漏之处在所难免,请广大读者批评指正。
如果读者在使用本书时遇到问题,可以访问明日科技网站,我们将通过该网站全面为读者提供网上服务和支持。对读者反馈的错误和问题,我们承诺在1~5个工作日内给予回复。
服务网站:mingrisoft网站。
服务邮箱:mingrisoft@mingrisoft.com。
服务电话:0431-84978981/84978982。
服务QQ:4006751066。
祝您读书愉快!
明日科技
2024年9月
“兵马未动,粮草先行。”在学习Java之前,需要先做好准备工作。本章首先介绍Java的特点,然后分别介绍如何在Windows 10操作系统下安装、配置和测试已下载好的JDK,接着分别介绍如何下载、启动Eclipse,最后介绍Java API(Application Program Interface,应用程序接口)及其使用方法。
Java是一门简单易用、安全可靠的计算机语言。计算机语言是指人与计算机沟通时采用的语言。Java是1995年由Sun公司推出的一门极富创造力的计算机语言,由具有“Java之父”之称的詹姆斯·高斯林设计而成。Java自诞生以来,经过不断发展和优化,一直流行至今。
Java当下有Java SE和Java EE两个常用版本,如图1.1所示。其中,Java SE是Java EE的基础,用于桌面应用程序的开发;而Java EE用于Web应用程序的开发,Web应用程序指的是用户使用浏览器即可访问的应用程序。

图1.1 Java的两个常用版本
Java很简单。一方面,Java的语法与C语言和C++语言的很相近,这使学习过C语言或C++语言的开发人员能够很容易地学习并使用Java;另一方面,Java丢弃了C++语言中很难理解的指针,并提供了自动的垃圾回收机制,即当CPU空闲或内存不足时,自动进行垃圾回收,这使开发人员不必为内存不足而担忧。
Java的一个主要特点是具有跨平台性。跨平台性是指同一个Java应用程序能够在不同的操作系统上执行。在Windows操作系统、Linux操作系统和macOS上分别安装与各个操作系统相匹配的Java虚拟机后,同一个Java应用程序就能够在这3个不同的操作系统上执行,如图1.2所示。
说明
Java虚拟机简称JVM(Java Virtual Machine)。如果某个操作系统安装了与之匹配的JVM,那么在这个操作系统上Java应用程序就能够执行。

图1.2 Java的跨平台性
使用Java编写应用程序既能缩短开发时间,又能降低开发成本,这使Java的用途不胜枚举。例如,Java可以用于桌面应用程序、电子商务系统、多媒体系统、分布式系统及Web应用程序等的开发。在揭开Java的神秘面纱之前,先来做一些准备工作。
要使用Eclipse编写Java应用程序,计算机中必须安装JDK,因为Eclipse和JDK是相辅相成的,下面将分别予以介绍。
JDK的英文全称为Java Development Kit,即Java开发工具包。因为JDK提供了Java的开发环境和运行环境,所以JDK是Java应用程序的基础。换言之,所有的Java应用程序都是构建在JDK上的。
说明
Java运行环境简称JRE(Java Runtime Environment)。JRE主要包含JVM和Java函数库。JDK、JRE、JVM和Java函数库的关系如图1.3所示。
图1.3 JDK、JRE、JVM和Java函数库的关系
Eclipse是Java应用程序的众多开发工具中的一种,但不是必需的。例如,开发人员还可以使用记事本、MyEclipse、IntelliJ IDEA等开发工具编写Java应用程序。
本书使用的JDK版本是Java SE 11。Java SE 11需要在OpenJDK上进行下载。
下面介绍下载Java SE 11的方法,具体步骤如下。
(1)打开浏览器,进入JDK Java的官网,打开图1.4所示的OpenJDK主页面。OpenJDK主页面展示着JDK的各个版本号。因为本书使用的是Java SE 11,所以单击图1.4所示的页面中的超链接11,即可进入Java SE 11详情页。

图1.4 OpenJDK主页面
(2)在图1.5所示的Java SE 11详情页中,找到并单击超链接Windows/x64 Java Development Kit,弹出“新建下载任务”对话框。
(3)在图1.6所示的“新建下载任务”对话框中,先单击“浏览”按钮,选择openjdk-11+28_windows-x64_bin.zip的保存位置,再单击“下载”按钮。

图1.5 Java SE 11详情页

图1.6 “新建下载任务”对话框
说明
这里将压缩包下载到了桌面上。建议读者也先将压缩包下载到桌面上,以便于后续操作。
在配置Java SE 11之前,要先移动并解压openjdk-11+28_windows-x64_bin.zip,步骤如下。
(1)在D盘下新建一个空的、名为Java的文件夹,如图1.7所示。

图1.7 新建一个空的、名为Java的文件夹
(2)先单击桌面上已下载完成的openjdk-11+28_windows-x64_bin.zip,按快捷键Ctrl + X将其剪切;再双击打开D盘下已新建好的、名为Java的文件夹,按快捷键Ctrl + V将openjdk-11+28_windows-x64_bin.zip粘贴到Java文件夹下;最后对openjdk-11+28_windows-x64_bin.zip执行“解压到当前文件夹”操作,解压后的效果如图1.8所示。

图1.8 移动并解压openjdk-11+28_windows-x64_bin.zip
移动并解压openjdk-11+28_windows-x64_bin.zip后,即可对Java SE 11进行配置。在64位的Windows 10操作系统下配置Java SE 11的步骤如下。
(1)右击桌面上的“此电脑”图标,选择快捷菜单中的“属性”选项,如图1.9所示。

图1.9 选择快捷菜单中的“属性”选项
(2)在弹出的界面中,单击“高级系统设置”,如图1.10所示。

图1.10 单击“高级系统设置”
(3)弹出图1.11所示的“系统属性”对话框,在“高级”选项卡中,单击“环境变量”按钮。

图1.11 单击“环境变量”按钮
(4)弹出图1.12所示的“环境变量”对话框,单击对话框下方的“新建”按钮,创建新的环境变量。

图1.12 单击对话框下方的“新建”按钮
(5)弹出图1.13所示的“新建系统变量”对话框,在对话框中输入变量名和变量值后,单击“确定”按钮。变量名和变量值的设置具体如下。
变量名:JAVA_HOME。

图1.13 在对话框中输入变量名和变量值
变量值:D:\Java\jdk-11(图1.14所示是将openjdk-11+28_windows-x64_bin.zip解压后,jdk-11文件夹中的内容)。

图1.14 jdk-11文件夹中的内容
(6)弹出“环境变量”对话框,在“系统变量”选项组中找到并单击Path变量,单击对话框下方的“编辑”按钮,如图1.15所示。

图1.15 找到并单击Path变量后单击编辑按钮
(7)弹出图1.16所示的“编辑环境变量”对话框,单击对话框右侧的“新建”按钮。
(8)在列表中会增加一个空行。在空行中输入“%JAVA_HOME%\bin”,如图1.17所示。

图1.16 单击对话框右侧的“新建”按钮
(9)先单击“上移”按钮,将%JAVA_HOME%\bin上移至列表的第一行;再单击“确定”按钮,如图1.18所示。

图1.17 输入“%JAVA_HOME%\bin”

图1.18 将%JAVA_HOME%\bin上移至列表的第一行
完成上述步骤,即可成功配置Java SE 11。最后,依次单击各个对话框下方的“确定”按钮,关闭各个对话框。
Java SE 11配置完成后,需测试Java SE 11是否配置准确。测试Java SE 11的步骤如下。
(1)在Windows 10操作系统下测试JDK环境时,需要先单击桌面左下角的
图标,再直接输入cmd,接着按Enter键,启动命令提示符窗口。输入cmd后的效果如图1.19所示。
(2)在已经启动的命令提示符窗口中输入javac,按Enter键,将输出图1.20所示的JDK的编译器信息,其中包括修改命令的语法和参数选项等信息。这说明JDK配置准确。

图1.19 输入cmd后的效果

图1.20 JDK的编译器信息
Eclipse是主流的Java开发工具之一,是由IBM公司开发的集成开发工具。本节对Eclipse的下载与启动予以讲解。
Eclipse的下载步骤如下。
(1)打开浏览器,进入Eclipse的官网首页,如图1.21所示,单击Download Packages超链接。

图1.21 Eclipse的官网首页
(2)进入Eclipse Packages页面。先在当前页面下方找到Eclipse IDE for Java Developers,再单击与其对应的Windows操作系统的64-bit超链接,如图1.22所示。

图1.22 单击Windows操作系统的64-bit超链接
说明
(1)为了匹配64位Windows操作系统的Java SE 11,需要下载64位Windows操作系统的Eclipse。
(2)Eclipse的版本更新速度比较快,因此读者在下载Eclipse时,如果没有64位的Eclipse 2019-09版本,可以直接下载最新版本的64位Eclipse。
(3)单击与Eclipse IDE for Java Developers对应的Windows操作系统的64-bit超链接后,Eclipse服务器会根据客户端所在的地理位置分配合理的下载镜像站点,读者只需单击Download按钮,即可下载64位Windows操作系统的Eclipse。Eclipse的下载镜像页面如图1.23所示。
图1.23 Eclipse的下载镜像页面
将下载好的Eclipse压缩包解压后,就可以启动Eclipse了。启动Eclipse的步骤如下。
(1)在Eclipse解压后的文件夹中双击eclipse.exe文件。
(2)在弹出的Eclipse IDE Launcher对话框中,设置Eclipse的工作空间(用于保存Eclipse中建立的项目和相关设置),即在Eclipse IDE Launcher对话框的Workspace文本框中输入.\workspace。
说明
.\workspace指定的文件地址是Eclipse解压后的文件夹中的workspace文件夹。
(3)单击Launch按钮,即可进入Eclipse的工作台。Eclipse IDE Launcher对话框如图1.24所示。

图1.24 Eclipse IDE Launcher对话框
注意
选中Use this as the default and do not ask again复选框可以将该地址设为默认工作空间,这样在启动Eclipse时就不会再询问工作空间的设置问题了。
首次启动时,Eclipse会呈现图1.25所示的欢迎界面。

图1.25 Eclipse的欢迎界面
关闭Eclipse的欢迎界面,即可进入Eclipse的工作台。Eclipse的工作台是开发人员编写程序的主要场所。本节将介绍Eclipse工作台中的窗口和菜单。
Eclipse工作台主要包括标题栏、菜单栏、工具栏、编辑器、透视图和相关的视图等,如图1.26所示。

图1.26 Eclipse工作台
由图1.26可知,Eclipse的菜单栏包含File菜单、Edit菜单、Source菜单、Refactor菜单、Navigate菜单、Search菜单、Project菜单、Run菜单、Window菜单和Help菜单。Eclipse的菜单栏中的菜单如表1.1所示。
表1.1 Eclipse的菜单栏中的菜单
| 菜单 |
说明 |
|---|---|
| File |
用于打开文件、关闭编辑器、保存编辑的内容、重命名文件等,此外,还可以向工作区导入内容、导出工作区的内容和退出Eclipse等 |
| Edit |
有复制和粘贴等功能 |
| Source |
包含一些关于编辑Java源码的操作 |
| Refactor |
可用于自动检测类的依赖关系并修改类名 |
| Navigate |
包含一些快速定位到资源的操作 |
| Search |
可用于设置在指定工作区内对指定字符的搜索 |
| Project |
包含一些关于项目的操作 |
| Run |
包含一些关于代码执行模式与调试模式的操作 |
| Window |
允许同时打开多个窗口及关闭视图。Eclipse的参数设置也在该菜单下进行 |
| Help |
包含显示帮助的窗口和Eclipse的描述信息,此外,还可以在该菜单下安装插件 |
编写一个Java应用程序需要经过图1.27所示的5个步骤。

图1.27 编写Java应用程序的5个步骤
要编写一个Java应用程序,首先需要新建Java项目。在Eclipse中新建Java项目的步骤如下。
(1)从菜单栏中选择File→New→Java Project菜单项,打开New Java Project对话框。打开New Java Project窗口的步骤如图1.28所示。

图1.28 打开New Java Project窗口的步骤
(2)New Java Project窗口如图1.29所示。首先在Project name文本框中输入MyTest,然后在Project layout选项组中确认Create separate folders for sources and class files(为源文件和类文件新建单独的文件夹)单选按钮被选中,最后单击Finish按钮,完成项目的新建。
(3)弹出图1.30所示的New module-info.java(新建模块化声明文件)窗口,模块化开发是JDK 9新增的特性,但模块化开发过于复杂,并且新建的模块化声明文件也会影响Java项目的运行,因此需要单击该窗口中的Don’t Create按钮。单击Don’t Create按钮后,即可完成Java项目MyTest的创建。

图1.29 New Java Project窗口

图1.30 新建模块化声明文件的窗口
Java类是存储Java代码的文件,文件扩展名是.java。在Eclipse中新建Java类的步骤如下。
(1)右击新建的Java项目MyTest,在弹出的快捷菜单中选择New→Class菜单项,如图1.31所示,打开New Java Class窗口。

图1.31 打开New Java Class窗口的步骤
(2)在New Java Class(新建Java类)窗口中,首先在Name文本框中输入First(Java类的名称),表示第一个Java应用程序;然后选中复选框public static void main(String[ ] args);最后单击Finish按钮。新建Java类的步骤如图1.32所示。

图1.32 新建Java类的步骤
单击Finish按钮后,Eclipse的工作台如图1.33所示。

图1.33 新建First类后Eclipse的工作台
注意
如果Eclipse显示的代码字号比较小,那么针对64位的Eclipse 2019-09版本,读者可以直接按快捷键Ctrl + =调大代码字号。
实例1-1 输出金庸14部小说作品口诀。
新建First类后,就可以在First类中编写“输出金庸14部小说作品口诀”程序的代码。在图1.33所示的第5行代码后面输入如下代码。
System.out.println("飞雪连天射白鹿,");
System.out.println("笑书神侠倚碧鸳。");
注意
println中的l不是数字1,而是小写字母l。
上述代码中的括号、双引号和分号均为英文格式下的标点符号。
编写完Java代码后,需要对其进行保存。保存Java代码有3种方式。
在Eclipse中按快捷键Ctrl +S保存当前的.java文件。
在菜单栏中右击File,在弹出的快捷菜单中选择Save菜单项(保存当前的.java文件)或者Save All菜单项(保存全部的.java文件)。
单击工具栏中的
按钮(等价于Save)或者
按钮(等价于Save All)。
在代码编辑区的空白区域右击,在弹出的快捷菜单中选择Run As→1 Java Application,即可运行Java应用程序。具体步骤如图1.34所示。

图1.34 运行Java应用程序的具体步骤
上述代码的运行结果如图1.35所示。

图1.35 First类的运行结果
Java API即Java API文档,记录了Java中海量的知识点,是Java应用程序设计人员即查即用的编程词典。Java API对Java应用程序设计人员的重要性类似于《现代汉语词典》对高中生的重要性。
API的全称是Application Program Interface,即应用程序接口,主要包括类的继承结构、成员变量、成员方法、构造方法、静态成员的描述信息和详细说明等内容。读者可以在Oracle Help Center网站中找到JDK 11的API文档,如图1.36所示。

图1.36 JDK 11的API文档
说明
JDK 11的API文档暂无中文版本,读者在查询知识点时,可以借助网上流行的英译汉词典进行学习。
本节将以java.lang.String为例,介绍JDK 11的API文档的使用方法。在JDK 11的API文档中查询java.lang.String的操作步骤如图1.37所示。

图1.37 查询java.lang.String的操作步骤
单击java.lang.String后,页面即会显示java.lang.String的相应内容(类的继承结构、成员变量、成员方法、构造方法、静态成员的描述信息和详细说明等),如图1.38所示。

图1.38 java.lang.String的相应内容
1.安装JDK后,下列哪一项不是bin目录下的主要开发工具?( )
A.javac
B.JVM
C.javadoc
D.java
2.下列哪一项是Java的编辑器?( )
A.javac.exe
B.JDK
C.JRE
D.java.exe
3.下列哪一项是编译Java程序的命令?( )
A.jar
B.javac
C.javadoc
D.java
4.下列哪一项是运行Java程序的命令?( )
A.jar
B.javac
C.javadoc
D.java
5.下列哪一项是正确的main()方法?( )
A.static void main(String[ ] args)
B.public void main(String[ ] args)
C.public static void main(String args[ ])
D.public void static main(String[ ] args)