Java语言程序设计一答案及串讲笔记.docx
《Java语言程序设计一答案及串讲笔记.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计一答案及串讲笔记.docx(83页珍藏版)》请在冰豆网上搜索。
Java语言程序设计一答案及串讲笔记
自考Java语言程序设计
(一)串讲笔记
1.1 Java语言的特点
Java语言最初的应用对象是消费性电子产品。
最
初的名字是Oak语言。
Java语言是适用于分布式计算环境的面向对象编程语
言,它虽类似于C和C++,但比C++简单,忽略了许多为
提高计算效率但初学者较难掌握的程序语言特性。
Java语言主要有以下特点:
①强类型。
②编译和解释:
Java语言是一种高级编程语言,用
Java语言编写的源程序在计算机上运行需要经过编译
和解释执行两个严格区分的阶段。
Java的编译程序先
将Java的源程序翻译成与机器无关的字节码,不是通常
的编译程序将源程序翻译成特定计算机的机器代码。
运行时,Java的运行系统装载和链接需要执行的类,并
作必要的优化后,解释执行字节码程序。
③自动无用内存回收功能,没有指针,数组元素都
要检查下标是否越界。
④面向对象。
⑤与平台无关:
在任何平台上,Java源程序被Java
编译器译成虚拟机能够识别的字节码。
这样,只要有
Java虚拟机的平台,就能解释执行Java字节码程序,从
而实现Java程序与平台无关。
⑥安全性。
⑦分布式计算。
⑧多线程。
1.2Java应用程序和小应用程序
Java程序可以是独立的应用程序,也可以是能在浏
览器上执行的小应用程序(Applet)。
两种Java程序都
由一个或多个扩展名为“.Class”的文件组成,而且都需
要Java虚拟机(JVM)载入并翻译。
两种程序的主要区别是:
①小应用程序只能在与Java兼容的容器中运行,可
以嵌入在HTML网页内,在网络上发布,当网页被浏览
时,在浏览器中运行,小应用程序的运行还受到严格的安
全限制,例如:
它不能访问用户计算机上的文件。
Java应
用程序没有这些限制,也不支持网页嵌入和下载运行。
②小应用程序和应用程序在代码编写上也有很大
差异。
一个小应用程序必须定义成一个Applet类的子
类。
应用程序可以是Applet类的子类,也可以不是。
应
用程序必须在一个类中定义一个main()方法,该方法代
表应用程序的入口。
而小应用程序不必定义main()方
法,它的执行由Applet类中定义的多个方法控制。
Java源程序命名受到严格的限制:
Java源程序的扩展名必须是“.Java”,而源程序经过
编译后得到的应用程序文件名(即字节码文件)的主文
件名和源程序中的类名一样,而扩展名是“.Class”。
如
果源文件中多个类,那么最多只能有一个public类;如
果源文件中有public类,那么源文件的名字必须与这个
类的名字完全相同。
如果源文件没有public类,那么源
文件的名字只要和某一个类的名字相同即可。
Java程序中经常会出现注释。
注释是程序中的说
明文字,用于帮助阅读程序,它不是语句,不会影响程序
的执行效率。
Java语言的注释有三种形式:
①行注释(//):
用于简短地说明前面代码的意义或
功能。
注释内容到行末,不能跨行。
②块注释(/*........*/):
是多行注释,用于说
明下面程序段的算法、功能等,块注释不可嵌套使用。
③文档注释(/*这是小应用程序.....*/):
能被实用程序(命
令)JavadoC接受,由它能自动生成程序的HTML文档。
1.3 Java程序的开发过程(以下以SUN公司的
JavaJDK为例)
对于Java应用程序,先编写Java源程序,源程序经
Java编译器(JavaC.exe)编译后产生字节码文件,最后由
Java解释器(Java.exe)解释执行字节码文件。
对于小应用程序,先编写Java源程序,源程序经Ja
va编译器编译后产生字节码文件,最后由Web浏览器
(Appletviewer.exe)解释执行字节码文件。
编译器和解释器的使用格式是:
JavaC[选项]源文件(其中源文件是“.Java文件)
Java[选项]类名[参数](类名指定的必须是含有
main()方法的类,即是一个Java应用程序)
通常情况下用的比较多的开发环境有Eclipse,
JBuilder等。
1.4 标识符和关键字
Java语言使用Unicode字符集,共有65535个字符。
Java标识符用于命名程序对象。
Java语言的标识符可以按以下规则任意命名:
①由字母(包括英文字母、下划线字符、美元字符、
文字字符)和数字组成。
②限定标识符的第一个字符不能是数字字符。
除了按上述规则命名标识符外,另外还有命名的习
惯约定(行业习惯,不是规定):
一般变量名、方法名用小
写英文字母开头,类名首字母用大写字母,若命名由若
干个单词组成,后面的每个单词用大写开头;文字和常
数全用大写字母命名;包名全部用小写字母。
Java关键字:
关键字是一些英文单词,在语言中,关键
字已经被赋予特定的意义,不能用这些关键字作为标识符
命名程序对象。
关键字全部由小写字母组成。
每个关键字
在程序中出现,均有特定位置和特定使用方法的要求。
1.5 基本数据类型
Java语言是强类型语言,每个变量和表达式都有确
定的类型,在变量赋值时要进行类型兼容性检验。
数据类型可分为非基本数据类型和基本数据类型
两大类。
非基本类型也称为复合数据类型,是由基本类型组合
的新类型。
非基本数据类型分为:
数组、字符串、类、接口。
基本数据类型也称为原始数据类型,是系统预先规
定的一些常用类型。
它们是:
整数类型、浮点数(实数)
类型、字符(文字)类型、逻辑类型(布尔型)。
①逻辑类型用关键字boolean标识,所以也称为布
尔型。
逻辑类型只有真(true)和假(false)两个值。
②字符类型用关键字char标识。
字符型数据是一
个字符,内部表示是字符的Unicode代码,共有65535个
不同的字符。
在Java程序中,字符常量有普通字符常量
(用单引号括住一个字符)和转义字符常量(用\开头后
跟特定字符或字符串)两种。
③整数类型是指不带小数点和指数的数值数据。
由于计算机只能表示整数的一个子集,表达更大范围内
的整数需要更多的二进制位,Java语言将整数数据按数
值范围大小不同分成四种:
基本型用关键字int标识,4
个字节,32位,取值范围是-231~231-1;短整型用关键
字short标识,2个字节,16位,取值范围是-215~215-
1;字节型用关键字byte标识,1个字节,8位,取值范围
是-27~27-1;长整型用关键字long标识(或者在常数
后加L或l标识),8个字节,64位,取值范围是-263~
263-1。
每种整数类型处理不同范围的整数值,并且都
是带符号的。
整型常量有十进制、八进制(以数字符0开头)和十
六进制(以0x开头)三种写法。
④浮点数类型也称为实型,浮点数是带小数点或指数
的数值数据。
Java语言的浮点数有单精度和双精度两种。
单精度型用关键字float标识,占4个字节,32位。
Float型常量的书写方法是在实数之后加上字母F或f。
双精度用关键字double标识,占8个字节,64位。
double型常量的书写方法有两种:
一种写法是直接写一
个实数,或在实数后加字母D或d。
另一种是科学计数
法,用10的方幂(用字符e或E表示幂底10)。
第二章:
运算和语句
2.1 数据运算
Java语言的基本运算可分成以下几类:
赋值运算、
算术运算、自增和自减运算、关系运算、逻辑运算、条件
运算和字符串连接运算等。
2.1.1 赋值运算
在Java语言中符号“=”是赋值运算符不是“相等”运
算符(相等运算符是“==”见关系运算符的叙述)赋值运
算分为两类:
一是简单赋值运算;二是复合赋值运算。
1.简单赋值运算
简单赋值运算的一般形式如下:
变量 表达式
赋值运算的执行过程是:
(1)计算赋值运算符右端的表达式。
(2)当赋值运算两侧的类型不一致时,将表达式值
的类型自动转换成变量的类型。
(3)将表达式的值赋值给变量,即存储到与变量对
应的存储单元中。
这里的类型转达换是指数值数据的类型自动转换,
这样的自动转换只能是简单类型向复类型转换,不能从
·7·第2章 运算和语句
复杂的转换成简单的。
即如下所示的从左到右转换。
byte→short→int→long→float→double
Java语言约定赋值运算也有值,它的值就是赋予变
量的值,因此,赋值运算的结果可以继续赋值。
intj;
doubley=2.0;
y=j=3;∥j的值为3,y的值为3.0
赋值运算符结合性“自右至左”当连续有多个赋值
运算时,是从右至左逐个赋值。
2.复合赋值运算
这类运算的特殊性点是:
变量即要参与运算,又要
接受赋值。
为避免对同一个变量的地址重复,计算引入
复合赋值运算符。
常用的复合赋值运算符有:
+=、
-=、=、/=、%=。
2.1.2算术运算
算术运算要求运算分量的类型是数值类型的(整数
类型和浮点数类型)。
运算时,只需一个运算分量的是
单目运算,需两个运算分量的是双目运算。
特别的:
(1)“/”为除法运算符,当除数和被除数均为整数类型
数据时,则结果也是整数类型数据。
例如7/4的结果为1。
(2)“%”为求余数运算符,求余数运算所得结果的符
号与被除数的符号相同。
例如5%3的结果为2,-5%3的
结果为的结果为3。
·8·Java语言程序设计
(一)
2.1.3自增和自减运算
自增运算符“++”和自减运算符“--”是单目运
算符,要求运算分量是数值类型的变量,其作用是使变
量的值增1或减1,这两个运算符与变量结合有以下四
种可能形式:
++i前缀形式,表示在引用变量i之前,先使i加
1,以加1后的i值为运算结果。
-i前缀形式,表示在引用变量i之前,先使i减1,
以减1后的i值为运算结果。
i++后缀形式,表示在引用变量i之后,才使i加1,
即以增1前的i值为运算结果。
i--后缀形式,表示在引用变量i之后,才使i减1,
即以减1前的i值为运算结果。
例如:
i=4;j=++i;∥i结果为5,j的结果为5
i=4;j=i++;∥i的结果为5,j的结果为4
i=4;j=!
!
i;∥i结果为3,j的结果为3
i=4;j=i!
!
;∥i结果为3,j的结果为4
上述例子说明,对变量采用自增(或自减),用前缀
形式或用后缀形式,对变量本身来说,效果是相同的,但
表达式的值不相同。
前缀形式是变量运算之后的新值,
后缀形式是变量运算之前的值.
自增自减运算能使程序更为简洁和高效,但在使用
·9·第2章 运算和语句
时需注意“++”和“!
!
”运算的运算对象只能是变量,
不能是常量或表达式.例如,4++或(i+j)++都是不
合法的.
2.1.4 关系运算
关系运算对左右两侧的值进行比较,如果比较运算
的结果成立,则值为true,不成立为false。
关系运算符的优先级别不完全相同。
<、<=、>、
>=的优先级高于==、!
=。
关系运算符的优先级低于算术运算符的优先级。
2.1.5 逻辑运算
逻辑运算用来描述表达式,实现连续多个条件的逻
辑与、逻辑或、逻辑否定的判定。
有3个逻辑运算符:
""(逻辑与)、‖(逻辑或)、!
(逻辑否定)
其中:
运算符""和‖是双目运算符,运算符!
是
单目运算符。
逻辑运算的操作数必须是布尔型的,结果
也是布尔型的。
逻辑否定“!
”的优先级高于算术运算符的优先级。
逻辑与“""”和逻辑或“‖”的优先级低于关系运算符
的优先级。
需要特别指出的是,逻辑与和逻辑或运算符有以下
性质,Java