•总体的说,第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 |