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


发布时间:2020-07-14 11:01:48

点击下载

作者:杨龙平,李湘林

出版社:中国铁道出版社有限公司

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

Java程序设计

Java程序设计试读:

前言

FOREWORD

Java语言是当前主流的面向对象程序设计语言,其前身是Oak。Java自面世后就非常流行,且发展迅速,具有卓越的通用性、健壮性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、移动电话和互联网等,在全球云计算和移动互联网产业环境下,具备显著的优势和广阔的发展前景。

本书以Java 8为基础,由学校与企业合作共同编写,内容包括:Java语言概述、Java编程基础、类与对象、继承与多态性、异常处理、泛型、Java常用类、多线程、集合、Java I/O技术、用户图形界面和网络编程,并配备丰富的实例。在对程序进行解析时既给出了正确的代码,也把经常出错的代码展示出来,帮助读者分析出错的原因,提高程序纠错能力,让读者少走弯路,提高学习的效果。本书所有章节还设有应用实例,可帮助读者提高程序设计能力,而且前后的内容之间有串连,例如,书中的网络聊天室,融合了网络通信、图形用户界面、集合、泛型技术、多线程等知识点,可使读者在程序设计过程中,学会触类旁通,从而提高开发效率。

本书重在入门与提高,即使是没有编程基础的初学者,也可以通过本书的学习,达到一般编程开发人员的水平。为了帮助读者更直观地学习,我们还录制了相关视频,读者通过扫描书中 二维码 即可观看。

本书由杨龙平、李湘林任主编,颜菲、王岳、黄友鹏任副主编。其中:第3、4、7、8章由杨龙平编写;第5、6、10章由李湘林编写;第1、2章由颜菲编写;第11、12章由中盈创信(北京)科技有限公司的资深工程师王岳编写;第9章由黄友鹏编写。

由于时间仓促,编者水平有限,书中难免有疏漏与不足之处,欢迎读者批评指正。编者2017年6月第1章Java语言概述

Java是由Sun公司开发而成的编程语言,使用它可以在各式各样不同种类机器、不同操作平台的网络环境中开发软件。Java正在逐步成为Internet应用的主要开发语言,它彻底改变了应用软件的开发模式,为迅速发展的信息世界增添了新的活力。

学习目标:

● 了解Java的语言特点;

● 理解Java语言编程环境的配置;

● 掌握Java程序的结构;

● 掌握Java程序的运行。1.1Java的发展历史和特点1.1.1 Java的发展历史

Sun公司的Java语言开发小组成立于1991年,其最初目的是作为一种小家用电器的编程语言,用于解决家用电器控制和通信问题。Sun内部人员把这个项目称为Green。该小组的领导人James Gosling是一位杰出的程序员,它最初将此语言命名为Oak。由于智能家用电器在当时没有达到预期的火爆,Sun放弃了该项计划。然而,Internet发展异常迅速,Sun看到了Oak在网络上的广阔应用前景,于是对Oak进行了改造。1995年,Sun正式将Oak命名为Java。1996年,Java正式推出了程序开发包JDK1.0。1997年2月,发布了Java语言的开发包JDKv1.1,从此奠定了Java语言在计算机语言中的地位。1998年12月,Sun公司发布Java 2平台JDKv1.2。Java 2平台是Java发展史上的里程碑。1999年,Sun公司重新组织Java平台的集成方法,并将企业级应用平台作为Java语言发展方向。从2000年开始至2006年,Sun公司每两年发布一个新的开发包,到2006年,发布了JDKv1.6。2009年2月,开始规划JDKv1.7,因为各种原因,直到2011年7月,才发布JDKv1.7正式版。同时,在2009年4月,Oracle公司以74亿美元正式收购Sun公司,Java商标正式归Oracle公司所有。2014年3月,Oracle公司发布Java SE 1.8。1.1.2 Java的特点

1.面向对象

面向对象是现实世界模型的自然延伸。现实世界中任何载体都可以看成是对象,对象之间通过消息相互作用。传统的编程语言是以过程为中心、以算法为驱动,而面向对象的编程语言是以对象为中心、以消息为驱动。Java语言支持面向对象编程语言的3个概念:封装、多态和继承。基于对象的编程更符合人们的思维模式,使人们更容易编写程序。

2.与平台无关

Java语言的最大优势是与平台无关。使用Java语言编写的应用程序不需要进行任何修改,就可以在不同的硬件平台上运行,从而大大降低了开发、维护和管理成本。Java源程序的扩展名为.java,需要在编译器中进行编译,形成二进制代码,扩展名为.class,这些二进制代码可通过Java虚拟机(JVM)来识别运行。因此,任何一台机器只要配备了JVM就可以运行用Java编写的程序。

3.安全性

由于Java语言面是向网络的语言,因此必须具有相当的安全性,以避免病毒程序的产生和网络程序对本地系统的破坏。Java用VM机制引入了安全防线,确保Java程序的安全性。

4.多线程

多线程允许同时完成多个任务。在现实生活中,人们身边经常会同时发生很多事情,多线程的概念就是让计算机同时运行多个程序段。Java在两方面支持多线程:首先,Java环境本身是多线程的;其次,Java语言内置多线程控制,其提供了一个类Thread,由它负责启动、终止线程。

5.动态性

由于Java程序的基本组成单元是类,有程序人员自己编写的类,也有从Java类库引入的类。Java的类库可以自由地添加方法和属性而不会影响用户程序。因此,Java的动态性可以很好地适应不断变化的执行环境。

6.支持网络编程

Java提供的类库可以处理HTTP和FTP等协议,用户通过URL地址在网络上访问其他对象就如同存取本地文件系统一样简单。1.2Java的运行环境

JDK是Java开发工具包(Java Development Kit)的缩写,是一种最基本的工具和开发环境。JDK是Java的核心,包括了Java运行环境(Java Runtime Enviroment,JRE)、Java编译器、大量的Java工具,以及Java基础API。1.2.1 安装Java编译器

1.JDK的下载

首先在Oracle公司的官方网站下载JOK,网站的地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,进入网站后,根据网站的图标提示,下载Windows x86或者Windows x64的安装软件,如果是其他的操作系统,用户可以根据需要进行选择。

2.JDK的安装

这里下载的JDK工具为jdk-8u45-windows-x64.exe,双击运行,依照提示进行安装。在设置JDK的安装路径时,为避免以后编译、运行时因文件路径而出错,文件夹的名称不应包括空格字符。这里假设使用默认安装目录D:\Java\jdk1.8.0_131,如图1-1所示。1.2.2 配置运行环境

JDK安装完成后,需要设置环境变量。以Windows 7操作系统为例,右击桌面的“计算机”图标,选择“属性”命令,单击“高级系统设置”,选择“高级”选项卡,单击“环境变量”按钮,打开如图1-2所示的“环境变量”对话框。Java运行环境配置视频图1-1 JDK安装向导图1-2 “环境变量”对话框

单击“系统变量”中的“新建”按钮,新建系统变量JAVA_HOME,其值设置为刚才JDK的安装路径D:\Java\jdk1.8.0_131,如图1-3所示。

新建系统变量classpath,如图1-4所示。注意,在设置classpath的值时,是以“.”开始的。其值设置为:“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”。图1-3 新建JAVA_HOME变量图1-4 新建classpath变量

选中“系统变量”中的path变量,单击“编辑”按钮,在变量值最后添加:%JAVA_HOME%\bin。JDK配置完成后,可以对JDK开发环境进行测试。

单击“开始”按钮,在“搜索程序和文件”中输入cmd,打开命令窗口,在窗口中输入javac命令,得到如图1-5所示的结果,说明配置成功。图1-5 检测配置环境1.3第一个Java程序1.3.1 Java源程序

所谓源程序,是指按照一定的程序设计语言(如Java语言等)规范进行书写,未经编译的可读文本文件。Java源程序就是用户与计算机世界交互的语言,只要提供正确的源程序,Java就可以按照程序所写的代码去执行。

例如,在计算机控制台中显示一行文字“Hello,World!”,实现此功能的Java源代码如下:【例1-1】 第一个java程序HelloWorld。

将程序以文件的形式保存,注意文件名必须命名为HelloWorld.java。“.java”为Java源程序文件的扩展名。1.3.2 Java程序的结构

下面以HelloWorld.java源程序为例,介绍Java程序中的各个组成部分,帮助读者认识Java程序的结构。

1.注释

在程序中加入注释,可提高程序的可读性,使程序易于阅读和理解。注释的内容在程序运行时不会被执行。

HelloWorld.java源程序的第一行为注释语句:其中,“//”字符将这行其余内容转换为注释内容,为“单行注释”。除此之外,也可以在语句的末尾追加一个注释,写成如下形式:

Java语言中还有一种注释是以“/*”开始,以“*/”结束,称为多行注释。例如:

2.类

前面曾经说到,Java程序的基本单元是类。在HelloWorld源程序中第一行“public class HelloWorld”与第二行和最后一行的一对大括号共同组成的一个整体,即这就是一个类,HelloWorld即为类名,public用来说明类的访问权限。源程序文件在保存时,文件名一般与包含main()方法的类名一致。

3.方法

方法是类的功能,方法也有名字,方法的主体是用一对大括号“{}”括起来。例如,在HelloWorld源程序中包含了main()方法:

main为方法名称,public、static和void用来修饰方法,main后面的圆括号“()”中是方法的参数,即使没有参数,“()”也不能省略。大括号内的内容即为方法的主体。

需要特别强调,在Java语言中,Java的源程序是以类为基本单位进行编辑,类是Java程序中的基本单位。方法必须在类中,不能独立于类而存在,方法必须属于某一个类。

main()方法是Java程序的入口,是所有Java程序执行的起点。如果直接运行一个没有main()方法的程序,Java会因为找不到main()方法而提示一个错误。1.3.3 EditPlus编辑器

EditPlus是一款功能强大、且小巧的,可处理文本、HTML和程序语言的Windows编辑器,它支持颜色标记、HTML标记,同时也支持C、C++、Perl、Java,是一款应用非常广泛的编辑软件。可在官网中下载EditPlus进行安装。启动EditPlus后,可以选择“文件”→“新建文件”→“Java”,创建一个Java源程序,如图1-6所示。Java程序编辑与运行视频图1-6 通过EditPlus编辑器创建Java源程序

将HelloWorld源文件输入到EditPlus编辑器中,保存源文件到D:\java目录中,文件名与类名HelloWorld一致。然后,编译、运行Java程序。将Java源文件编译成字节码文件的命令是Javac(可参考图1-5),在编译源程序时,必须连同源程序的扩展名一起写。运行Java程序的命令是Java,在运行程序时,可以省略扩展名。运行结果如图1-7所示。图1-7 第一个java程序的运行结果课后习题

1.Java有哪些特点?

2.Java应用程序主要包括哪几部分?

3.上机练习:下载并安装JDK,并在计算机上设置好环境变量。

4.调试运行HelloWorld程序。第2章Java编程基础

在第1章里,已经学会了如何搭建Java开发环境及开发Java程序的过程。本章将学习Java的基本语法知识。

学习目标:

● 掌握标识符的命名规则;

● 理解Java中的数据类型;

● 理解运算符的应用;

● 掌握程序的逻辑控制;

● 理解数组的应用。2.1标识符

在Java语言中,标识符用于表示常量、变量、方法、类或接口的名称。Java语言对字母的大小写敏感,即严格区分大小写,但没有长度的限制。标识符是以字母、下画线、美元符($)开始的一个字符序列,后面可以跟字母、数字、下画线、美元符。下面的标识符是合法的:X_1、_pass、$address;而8name、name_*3则为非法的标识符。2.1.1 关键字

Java关键字也称为保留字,是Java语言自身使用的标识符,通常具有特定的含义,因此不能将关键字作为常量、变量、类等的名称。Java语言中的关键字通常用英文小写字母表示,如public、int、main等,常见的一些关键字如下:

abstract  boolean  protected  import  for  case

catch  char  super  native  instanceof  continue

default  do  throws  public  new  extends

final  finally  while  switch  return  goto

if  implements  break  transient  synchronized  int

interface  throw  class  byte  try  package

private  volatile  double  const  short  void

static  long  float  else  this2.1.2 用户自定义标识符

用户自定义标识符是指用户根据需要自己定义的标识符,一般用来给变量、数组、方法、类等命名。用户自定义标识符如果与关键字相同,则编译时会出错。例如,在声明变量时,将变量命名为import。2.1.3 标识符的命名规范

Java语言中的标识符是由字母、数字和特殊符号($、_)组成,没有长度限制,必须以字母、下画线、$符号开头,注意严格区分大小写,即标识符中大小写字母会认为是不同的标识符,如AA、Aa是两个不同的合法的标识符。除此之外,在程序中对标识符的命名通常会有以下约定:(1)常量的名字用大写字母,使用下画线对常量名单词进行分隔,如ONE_HUNDREND。(2)变量使用混合大小写的方式,即首字符为小写,后面的字首字母用大写,如byName。(3)类名每个字的首字母大写,可大小写混用,如Animal。(4)接口是一种特殊的类,接口名的命名规则和类名相同。(5)方法名的首字母小写,其余各字的首字母使用大写,最好不要使用下画线,如showAll。2.2Java的数据类型

在计算机程序中,数据描述是通过数据类型来完成的。数据类型决定了数据在内存中的存放形式、占用内存空间的大小。在Java语言中,数据类型分为基本数据类型和引用数据类型,如图2-1所示。图2-1 数据类型2.2.1 Java的基本数据类型

基本数据类型通常代表一个单一的值,也称为简单数据类型,由Java语言定义,是创建其他数据类型的基础。Java语言定义了8种基本数据类型,如表2-1所示。表2-1 Java语言的基本数据类型2.2.2 Java的引用数据类型

在Java语言中,引用数据类型也称为复合数据类型,包括数组、类、接口与字符串。引用数据类型的变量中存储的不是数据本身,而是数据在内存中的存放地址。由于引用数据类型的知识与面向对象密切相关,故将在2.6节介绍数组的使用,而其他关于引用数据类型的相关知识将在后面的章节中介绍。2.3常量与变量

在Java语言中,根据数据表现形式有两种情况:在程序运行过程中其值保持不变的,称为常量;而在程序运行过程中可以根据用户的需求进行改变的,称为变量。2.3.1 常量

对应于数据类型,Java语言中包含下列常量:整型常量、浮点常量、布尔型常量、字符型常量和字符串常量。

1.整型常量

整型常量是指不含小数的整数值,如12、20等,这些是十进制整数。在书写时,除了采用十进制以外,还经常采用十六进制、八进制形式。八进制常量以0开头,后面跟多个0~7之间的数字,如0123、067;十六进制常量以0x开头,后面跟多个0~9之间的数字或者A~F之间的大写字母或者a~f之间的小字字母,如0x123、0xA80。

2.浮点常量

浮点常量是指带有小数部分的十进制数,有两种表示形式:(1)标准方式:即十进制数形式,是在一个整数后加上小数点,再添加上小数部分,如123.0、123.5。(2)科学计数法:以指数幂的形式来表示,如123e4、2.156E-3,其中e或者E之前必须有数字,且e或者E后面的数字必须是整数。

在Java语言中,浮点常量默认是双精度浮点数(double型)。在一个浮点常量后面加上f或者F后缀,就是单精度浮点数,如123.0f;加上d或者D后缀,就是双精度浮点数。

3.布尔常量

布尔常量只有两个值:true和false,分别代表了真和假。这两个值只能赋给声明为boolean类型的变量,在书写时,可直接使用true和false这两个英文单词,不需要加引号。

4.字符常量

字符常量是由一对单引号括起来的单个字符。所有可见的ASCII字符直接书写至单引号内,如'a'、'Y'、'4'。而那些不能直接从键盘输入的字符,可通过转义符号来表示,如表2-2所示。表2-2 转义符号

5.字符串常量

字符串常量是用双引号括起来的字符序列,如"student"、"1234"。需要注意的是,当字符串常量只包含一个字符时,不要和字符常量混淆,如'B'是字符常量,而"B"是字符串常量。字符串常量中的转义符号、八进制和十六进制表示与字符常量表示是完全一样的。例如,字符串"ni \n hao",中间加入了一个换行符,输出的时候,这两个词分别显示在两行。2.3.2 变量

变量是指在程序运行过程中其值可以改变的量。变量在程序设计中是必不可少的部分,也是在程序中使用频率最高的对象。变量可以保存程序运行过程的中间值,也可以在语句之间传递数据。

1.变量的声明

在Java语言中,变量必须先声明才能使用。声明变量的一般格式为:

说明:(1)变量名应符合标识符命名规则。(2)声明同一类型的多个变量时,可使用逗号分隔各变量。(3)可以在声明变量的同时给变量赋初始值,赋的初始值必须与变量类型一致。

下面代码的功能是声明不同类型的变量。

2.变量的初始化

变量的初始化是指给变量赋初始值。在声明变量时,可以直接赋初始值给变量;也可以在声明变量时只定义变量的数据类型、变量的名称,不赋初始值,在程序中用到该变量时再根据需要进行初始化。

方式1:在声明变量的同时给变量赋初始值。例如:

方式2:先声明变量,再采用赋值语句。例如:2.4运算符和表达式

Java语言提供了丰富的运算符,可以进行各种不同的运算。运算符代表着某种特定的运算指令,可以对由运算符连接的操作数进行相应的运算。在Java语言中,与类无关的常用运算符有赋值运算符、算术运算符、关系运算符、逻辑运算符和位运算符等。按连接操作数个数的多少来分,运算符分为一元运算符、二元运算符和三元运算符。

表达式是指用括号、运算符将操作数连接起来得到的式子。表达式按照运算规则计算得到一个结果,称为表达式的值。2.4.1 基本运算符

1.算术运算符

算术运算符主要是实现数学上的算术运算,如:加(+)、减(-)、乘(*)、除(/)和取余(%)运算,支持整数型数据和浮点型数据的运算。Java语言中的算术运算符如表2-3所示。表2-3 算术运算符

需要说明的几点:(1)除法(/)运算:当整型数据在进行除法运算时,无论是否能整除,结果都将是一个整数。注意,如果不能整除,只是简单地将小数部分去掉,而不是四舍五入。例如,11/3结果为3。(2)取余(%)运算:两个运算对象一般是整型数据,其实质为求余数运算。例如,11%3结果为2。(3)自增(++)运算:只能用于变量,实现变量值完成自动加1的运算。例如,int i=0;i++;。(4)自减(--)运算,只能用于变量,实现变量值完成自动减1的运算。例如,int j=10;j--;。(5)单独使用的++、--运算符:只是实现简单的变量自增和自减运算,但比传统写法的加减运算速度要快很多,常在循环结构中用来控制循环的次数。

2.算术表达式

由算术运算符将操作数连接起来得到的式子,称为算术表达式。算术表达式运算的结果通常是数值类型的数据,如8+10%3。

3.赋值运算符

赋值运算符(=)的作用是将赋值号右边表达式的值赋给左边相应类型的变量或对象。例如:

需要说明的是:(1)赋值运算符的结合性是从右到左。如下面的代码中,首先计算表达式5+20,然后再将计算结果赋值给变量i。(2)赋值运算符可以与算术运算符进行组合,如表2-4所示。表2-4 算术赋值运算符2.4.2 三目运算符

在Java语言中包含有一个特殊的三目运算符,即条件运算符。条件运算符由“?”“:”两个字符组成,它要求有3个运算对象。由条件运算符构成的表达式称为条件表达式,其格式如下:

先计算条件表达式的值,如果为true,则表达式取“结果1”的值;反之,则取“结果2”的值。如果有int a=10,b=20,则表达式a>b?50:100的值为100。2.4.3 关系运算符

1.关系运算符

关系运算符主要实现数据的比较运算,比如大于、等于、小于等。Java语言中的关系运算符如表2-5所示。表2-5 关系运算符

2.关系表达式

由关系运算符将两个表达式连接起来的式子称为关系表达式。关系表达式的运算结果为布尔值true或false。

关系表达式通常可作为分支语句或者循环语句中的控制条件。2.4.4 逻辑运算符

1.逻辑运算符

逻辑运算符用来实现逻辑判断功能,通常用于判断两个关系表达式的结果或逻辑值,例如,判断5>3和10<20是否同时成立。Java语言中的逻辑运算符如表2-6所示。表2-6 逻辑运算符

说明:(1)逻辑与(&&)连接两个表达式,当运算时,只要判断出左边的表达式为假,则不需要再计算右边的表达式,即可得出结论。(2)逻辑与(||)连接两个表达式,当运算时,只要判断出左边的表达式为真,则不需要再计算右边的表达式,即可得出结论。

2.逻辑表达式

由逻辑运算符将关系表达式连接起来构成的式子,称为逻辑表达式。Java语言中,逻辑表达式的运算结果为布尔值true或者flase。例如,逻辑表达式!((10>20)&&(5<8)),其结果为true。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载