南京工程学院2014-2015学期java复习总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章P5JAVA文件的命名方式文件类型为“.java”类由关键字class声明publicclassHello//Hello是类名,必须符合标识符语法,约定类名首字母大写{publicstaticvoidmain(Stringargs[]){if(args.length==0)System.out.println(Hello!);elsefor(inti=0;iargs.length;i++)System.out.println(args[i]);}}P8编译和运行java程序的流程(右图)第二章习题册P5-P8:习题2-1、Java语言的基本数据类型有哪些?引用数据类型有哪些?【答】基本数据类型有:整数类型byte、short、int、long,浮点数类型float、double,字符类型char,布尔类型boolean;引用数据类型包括数组(array)、类(class)和接口(interface)。2-4、表达式(byte)127+(byte)127的运算结果是__________,其数据类型是__________。【答】254,int〖解释〗Java的整数默认是int类型,byte类型只是形式上的,取相应int值的最低1个字节。所有byte和short整数运算仍然是int类型运算,运算结果是int类型,当运算结果在byte数据范围内时,也可视作byte类型。2-5、已知Integer.MAX_VALUE值为2147483647,表达式Integer.MAX_VALUE+1的运算结果是__________________。【答】-2147483648,即0x80000000〖解释〗Integer.MAX_VALUE值为0x7fffffff,0x7fffffff+1=0x80000000,数据溢出。运算过程如图2.1所示。matmatmatmat[0]mat[1]mat[0]mat[1](a)intmat[][];(b)mat=newint[3][];(c)mat[0]=newint[3];mat[1]=newint[4];mat[mat.length-1]mat[mat.length-1]0……mat[i].length-1int整数数据溢出2-11、表达式125&10的值是___________,表达式125|10的值是____________。【答】8,127〖解释〗int整数二进制位运算,运算过程如图2.2所示。matmatmatmat[0]mat[1]mat[0]mat[1](a)intmat[][];(b)mat=newint[3][];(c)mat[0]=newint[3];mat[1]=newint[4];mat[mat.length-1]mat[mat.length-1]0……mat[i].length-1int整数二进制位运算2-12、设doublex,将x按四舍五入方式强制转换成int类型的表达式的是__________。【答】(int)(x+0.5)2-13、Java语言的char字符类型与C/C++语言相比有什么差别?【答】两者字符常量表示形式相同,都是用单引号将字符括起来作为字符常量。不同之处如下:①C/C++语言的char类型表示ASCII字符,包括数字、字母、符号等,字长为1字节,取值范围为0~127;一个汉字用2字节表示。②Java语言的char类型表示Unicode字符,包括ASCII字符和汉字等,一个ASCII字符和汉字均占用2字节,取值范围为\u0000~\uFFFF(即0~65535)。2-14、表达式'a'+1的运算结果是____________,(char)('a'+1)的运算结果是__________。【答】98,'b'〖解释〗char也是数值类型,可将char看成是2字节无符号整数,范围是0~65535。1是int类型,4字节。'a'+1进行的是算术运算,操作数的数据类型相容,结果取较长的int数据类型,'a'+1运算含义为将'a'的ASCII码97加1。(char)('a'+1)将98强制转换成char类型,结果为'b'。2-15、设charch1=108,ch2=73;,以下语句有什么错误?如何改正?ch1=ch1+ch2;【答】编译错,不能将int转换成char。改正如下:ch1=(char)(ch1+ch2);〖解释〗与byte和short类型存储和运算原理相同,char也是以int存储和运算的,在0~65535范围内的整数可看成一个Unicode字符的编码,因此能够以字符显示。两个char作为数值参加算术运算时,仍然是int类型运算,运算结果是int类型。所以,不能赋值给char变量。习题册P9:2-18、与C/C++的数组相比,Java的数组做了哪些改进?具有怎样的优越性?【答】①Java数组都是动态数组,在声明数组变量之后,使用new运算符申请数组存储空间。②提供length属性表示数组长度。③Java的数组是引用数据类型,两个数组变量之间的赋值是引用赋值,传递地址等引用特性,没有申请新的存储空间。④Java将严格检查数组元素下标范围,程序运行时,如果a[i]的下标i取值超出0~a.length-1范围,则作为错误处理,产生“数组下标越界”异常,程序运行终止。⑤数组名不作指针使用。2-19、以下数组声明错误的是__________________。(A)int[]a;(B)inta[3];(C)inta[]={1,2,3};(D)inta[]=newint[3];【答】B〖解释〗Java数组是动态数组,声明数组变量时不需要接线指定数组长度,只有使用new运算符申请数组存储空间时才需要指定数组长度。2-20、设inta[]=newint[5],b[]=a;执行语句b[0]=99;后,a中各元素值为____________。【答】{99,0,0,0,0}〖解释〗Java的数组是引用数据类型,两个数组变量之间的赋值是引用赋值,即两个数组变量引用同一个数组,修改其中某一元素将同时改变另一数组变量的相应元素,如图2.3所示。matmatmatmat[0]mat[1]mat[0]mat[1](a)intmat[][];(b)mat=newint[3][];(c)mat[0]=newint[3];mat[1]=newint[4];mat[mat.length-1]mat[mat.length-1]0……mat[i].length-1数组的引用模型2-21、画出下列程序段表示mat存储结构示意图,并写出其中数据。intn=5,k=1;intmat[][]=newint[n][];for(inti=0;in;i++){mat[i]=newint[n-i];for(intj=0;jn-i;j++)mat[i][j]=k++;}【答】上三角形二维数组存储结构及初值如右图所示。上三角形二维数组的存储结构01671011数组第一维121314mat[0]mat[mat.length-1]……mat[i]…matj…mat[0][mat.length-1]…15892345mat[i][mat[i].length-1]习题册p12:2-25、怎样将数值类型的数据转换成字符串?【答】将数值与空串进行字符串连接运算,例如:inti=123;Strings=i+;//字符串连接运算,运算结果类型为String2-26、设charch=97;,表达式\(char)+(ch+0)+='+ch+'\的运算结果是__________。【答】(char)97='a'〖解释〗charch=97,即charch='a';。ch+0进行的是算术运算,操作数的数据类型相容,结果取较长的数据类型,因此,当charch=97时,ch+0结果为int类型的97。其后表达式各项进行字符串连接运算,得到结果。Java不支持程序员对运算符重载功能。但Java自己将“+”运算符重载为字符串连接运算,并且自动将其他类型转换成String。重载是多态的一种形式,以下两个表达式都是“+”运算,根据操作数类型的不同,能够区别所进行的不同运算:ch+0//整数加法运算,运算结果类型为intch+//字符串连接运算,运算结果类型为String2-28、怎样比较两个字符?怎样比较两个字符串?有几种比较字符串的方法?【答】char字符是基本数据类型,可以使用==和!=运算符比较是否相等,也可使用、=、、=运算符比较大小。String字符串是类,提供equals(obj)方法判断是否相等,返回boolean类型。提供compareTo(cobj)比较大小,返回int类型,当返回0时,表示两者相等;当返回正数时,表示当前对象大;当返回负数时,表示当前对象小,说明详见教材第4章Comparable接口。2-31、怎样将数值字符串转换成其所表示的整数或浮点数数值?【答】调用java.lang.Integer类的以下静态方法parseInt(s)将字符串s转换成十进制整数。publicstaticintparseInt(Strings)throwsNumberFormatException调用java.lang.Double类的以下静态方法parseDouble(s)将字符串s转换成浮点数值。publicstaticdoubleparseDouble(Strings)throwsNumberFormatException如果字符串不能转换成整数或浮点数,将抛出数值格式异常。详见教材第4~5章。P22标识符的命名规则以字母开头的字母数字序列,数字指0~9;字母指大小写英文字母、下划线(_)和符号$;区分字母大小写;不能使用关键字;长度不受限制。P26运算符与表达式:习题1.4-1.17连接符‘+’四舍五入(书例题)一、运算符:(1)算术运算符:+(正)、-(负)、++(自增)、--(自减)、+(加)、-(减)、*(乘)、/(除)、%(取余){【例2.1】求明天是星期几。publicclassTomorrow{publicstaticvoidmain(String[]args){intweek=6;System.out.println(星期+week+的明天是星期+((week+1)%7));week=0;System.out.println(星期+week+的昨天是星期+((week-1+7)%7));}}/*程序运行结果如下:星期6的明天是星期0星期0的昨天是星期6*/}(2)关系运算符:==、!=、、、=、=(3)位运算符:~(非)、&(与)、|(或)、^(异或)、(左移位)、(右移位)、(无符号右移位)(4)逻辑运算符:&(与)、|(或)、!(非)、∧(异或)、&&(条件与)、||(条件或){【例2.2】判断一个年份是否为闰年。publicclassLeapYear{publicstaticvoidmain(String[]args){intyear=2000;booleanleap=year%400==0||year%100!=0&&year%4==0;//先计算表达式,再赋值;带短路功能的逻辑运算,按逻辑运算符出现次序进行运算,此处先计算||,再计算&&System.out.println(year+isaleapyear?+leap);}}/*程序运行结果如下:2012isaleapyear?truebooleanleap=year%400==0|year%100!=0&year%4==0;//正确,逻辑运算,没有短路功能,|优先级低于&,先计算&,再计算|。如何调试知道??*/}(5)赋值运算符:=、+=等(6)强制类型转换符:(数据类型)表达式(7)条件运算符:表达式1?表达式2:表达式3(8)括号运算符:()、[](9)字符串连接运算符:+System.out.println(max=+max);二、运算符的优先级三、运算符的结合性:(1)单目运算符的结合性(2)双目运算符的结合

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功