20175303 2018-2019-2 《Java程序设计》第2周学习总结

•总体的说,第2周主要学习了课本第二章第三章的内容,这周的学习简直比上一周的简单而且容易理解得多。上周的各种安装,注册,眼花缭乱,很早就开始弄,但各种出错,到最后都想放弃了,好在有同学的帮助,帮我正确的安装了大部分东西,能让我大致了解我们需要掌握什么基本操作。也许是因为这周的内容是之前C语言学过的东西,所以理解起来要容易很多。下面列一些我认为需要注意的点:

教材学习内容总结

•除了类名、变量名、数组名、方法名等,文件名也是一种标识符,标识符的开头不能是数字。

•true、false、null不是Java关键字,但也不能作为标识符。

•数据精度由低到高排行及其所占字节内存:byte占1个字节<short占2个字节<char占2个字节<int占3个字节<long占4个字节<float占2个字节<double占4个字节,根据每个数据所占字节内存,可以知道定义数据的范围,如果算一个看起来就很大的整数,可以直接定义为long类型,否则很容易出错,

•float类型数据末尾必须要加上F或f,double型数据末尾可以加D或d,long型数据末尾常加L,所以必须在数据末尾加字母的是float类型数据。

•关于数据类型的转换,将低精度值赋给高精度值不会有问题,高精度值赋给低精度值会有精度损失,编译会出错。

•输入基本型数据,reader对象调用方法时,没有nextChar(),不能输入字符型数据。

•关于数组的定义,最直接的定义形式:int a[] =new int[5];    float b[][] = new float[3][4];  数组b的长度等于它含有一维数组的个数。

•数组索引越界,编译不会出错,但执行时会出现ArrayIndexOutOfBoundsExceptione的异常。

•关系运算符的计算结果,if语句中的条件表达式,while语句中的条件表达式,全都是且只能是Boolean型数据。switch语句中不定有default选项,表达式的值可以是byte、short、int、char,但不能是long型数据。

•输出数组的每一个元素,除了传统的循环,还可以用for(int i:a) { System.out.println(a); } 输出整形数组,for(char i:b) { System.out.println(b); } 输出字符型数组。

•hasNextDouble()的返回值为Boolean类型。

教材学习中的问题和解决过程

•课后习题第49页的第4题的第5问计算8+88+888…的前十项和的时候,将和sum定义为int类型结果总不对,后来定义为long类型结果就对了。

第一次编译执行得出来的结果就是1286608608,显然不等于8+88+888…前十项的和,最后一位应该是0;,因为计算结果超出了int型数据的范围,所以将sum的类型改为long,编译执行得出来9876543200就对了。

代码调试中的问题和解决过程

•用循环来计算1!+1/2!+1/3!+……的前二十项的和,例题用得是while,习题是都do-while和for,不论哪一种,都会有一句item = item*(1.0/i(或者1+i)),这里的1.0如果写成1,1/i(或1+i)就会等于0,而不是一个分数或小数,程序最后计算结果为1.0。
调试程序运行到第九行,已经运行了item = item*(1.0/(1+i))这一语句,结果item=0.0,而不是0.5,说明第8行代码有问题。把第8行的1改成1.0,就对了。

代码托管

上周考试错题总结

1、表达式-2 >>> 1的值为(A)

A .2^31 – 1            B .2^15 – 1            C .1           D .-1     错因:在百度上找到的有关移位计算符的知识,得知<<<是无符号移位运算符,但是结果还是没算出来。

2、表达式15&250的值为(B)

A .FF         B .1           C .255          D .1    解:这题应该是15(0000 1111)与  250(1111 1010)按位与,结果是0000 1010 ,应该是10,但答案里没有。

3、下列说法错误的是(BC)

A .“字符类型”中的“字符”指Unicode表中的一个字符。

B .使用System.out.println(“”)输出反斜线。

C .short类型与char类型均分配2个字节内存,两者取值范围一致。

D .使用(int)’A’观察一个字符在Unicode表中排序位置。   解析:错主要在c选项上,short数据类型的范围为-32768---32767,而char字符类型的范围为0---65535。

其他

•除了类名、变量名、数组名、方法名等,文件名也是一种标识符,标识符的开头不能是数字。在蓝墨云里有一个学习项目,带包的代码的编译执行,就是要新建一个名为‘20175303’的文件夹,新建以后编译执行带包代码都没问题,可上传到码云时候却一直出错,问同学,同学查看仓库,等等都还是没上传,这时候我在之前上传正常的文件夹里面,上传了一个shi(试)的文件夹,这个可以上传,后来猛地一想,是不是文件名也不能以数字开头,同学说是,把‘20175303’改成‘c2017503’再上传就没问题了。

学习进度条

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标 5000行 10篇 400小时  
第一周 553/500 1/1 15/24  
原文地址:https://www.cnblogs.com/cxd20175303/p/10507606.html