20175308 2018-2019-2 《Java程序设计》第二周学习总结
教材学习内容总结:
第二章学习内容:
1.认识标识符与关键字
2.java的八种数据类型,着重记好精度由高到低的排序依次是double、float、long、int、char、short、byte、boolean
3.将级别低的变量值赋给级别高的变量时,系统会自动完成数据类型的转换。而级别高的变量值赋给级别低的变量时则必须使用类型转换运算。
4.输入基本型数据要引入java.util.Scanner。在之后的学习我们学会了java.util.* 可以引入所有java.util下的类。
5.有关数组的使用。从声明数组,为数组分配元素以及对数组的初始化。数组作为引用型变量,引申出两个同类型的变量赋值时传递引用而非直接赋值的过程。一通百通,对数据结构的内容也能更好的理解。
第三章学习内容:
第三章内容主要有关与运算符、表达式与语句,在学习的过程中发现与C、Python无根本上的不同,理解上也较为容易。这里就不一一列举,单独选取一些java独特的内容或是较为不熟悉的内容:
1.算术混合运算中,如果表达式中最高精度低于int型,则按int精度进行运算,但是要注意可能会发生损失精度的错误导致编译不通过。
2.位运算符在操作逻辑型数据时,与逻辑运算符不同的点在于在经过位运算之后,运算中的变量值会改变。
3.reader调用nextBoolean()等方法都会造成阻塞。经常让reader对象先调用hasNextXXXX()方法等待用户输入数据
教材学习中的问题和解决过程
- 问题1:第二章课后习题选择题(2),不理解0x0123
— 问题1解决方案:上机调试结果为
经查阅与计算可知,该数字为16进制的整形,float值接受到一个int型证书,自动类型转换为float。 - 问题2:对于Example3_9中“只有hasNextDOuble()接受带小数点的数字返回值为true”无法理解。
- 问题2解决方案:实地调试发现,将代码中hasNextDouble的换为其他数据类型,再输入带小数点的数字,程序会直接结束。因为返回false后,while语句后的循环无法执行。
代码调试中的问题和解决过程
- 问题1:在课后习题求“8+88+888+..."前10项和时发现得出结果与答案代码所得结果不一致
— 问题1解决方案:仔细观察可发现,在定义变量时没有定义为long类型,导致数据缺失,远小于正确答案,修改数据类型定义后,答案正确。
- 问题2:课后习题中,输出某sum值时,编译出错
- 问题2解决方案:错误提示清楚指出因为没有对sum进行初始化,将sum初始值设为0后,结果正确。
- 问题3:出现以下错误:
- 问题3解决方案:仔细观察代码,发现错误仅是因为在编写时多打了一个括号,简单修改后正确
代码托管
上周考试错题总结
上周考试早在上周已经写过,本周测试没有答案。但是分数上不是很满意。由于个人参加比赛的冲突,第二次测试机会白白浪费。这里仍然可以反省一下自身存在的问题。对于死的概念记忆牢固,但是举一反三上仍有欠缺,尤其涉及循环的内容上,如果不上机实地编译,头脑混乱不清晰。希望在之后能够更加善于读代码。
一些心得:
在标识符的学习时。有同学问了这样一个问题,为什么数字不可以作为标识符的第一个字符。在回答这是语法规则之外,我又多思考了一下为什么会这样规定语法规则。标识符可以作为变量名,而数字可以作为变量的最后字符,如果数字也可以作为标识符的第一个字符,那么一个单纯由数字组成的标识符势必是合法的,但数字又不能作为变量,前后冲突,也就有了这样的语法规则?我觉得在学习中应该这样思考一下一些约定俗成的规则到底是因为什么而设立,理解比单纯的记忆能更清晰的将知识熟记于心。同时,在答疑中其他同学的问题也都可以验证,自行写代码来进行解答,如图:
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 2/2 | 2/2 | 14/14 | |
第二周 | 391/432 | 1/3 | 15/29 |
参考 :
在本周的学习中,我开始准备转战IDEA来编写程序,经过娄老师[Intellj IDEA 简易教程](https://www.cnblogs.com/rocedu/p/6371315.html#SECIDEA)中的指导,我已经安装了IDEA,并申请学生免费使用。
有关IDEA的使用,我会在下一篇博客中进行叙述。