20155328 2016-2017-2 《Java程序设计》第三周学习总结

教材学习内容总结

  • 类是对象的设计图,对象是类的实例。用class定义类,用new新建一个对象。

  • 一个原始码中可以有多个类定义,但只能有一个公开类,且文档中的主文档名必须与公开类名称相同。

  • Scanner对每个基本类型,都会有个对应的next×××()方法,如nextByte(),nextShort(),nextLong()等。

  • 使用BigDecimal剖析传入字符串,以默认精度进行接下来的运算(加、减、乘、除)。

  • 在操作对象时,=是用在指定参考名称参考某个对象,而==是用在比较两个参考名称是否参考同一对象,equals()是比较实质是否相同。

  • Java遵守IEEE 754浮点数运算规范,使用分数与指数来表示浮点数。可以使用java.math.BigDecimal类得到想要的精度。

  • 如果想比较字符串实际字符内容是否相同,不要使用==,要用equals()。

  • Java命名规范中取值方法的名称形式是固定的,以get开头,之后接上首字母大写的单词。

  • this()代表调用了另一个构造函数,至于调用哪一个构造函数,则视调用this时给的自变量类型和个数而定。

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

  • 问题:Java遵守IEEE浮点数运算规范,为什么对有的数还是显示原来的值?

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

  • 问题1:书上109页求平均数的代码运行结果错误,如图:

  • 解决方法1:通过观察发现书上的代码没有输入过程,因此修改后:



然后发现结果运算错误,发现是数的个数不对:

经调整:

  • 问题2:有一次使用git push时,到码云中查看自己的项目,发现文件夹无法打开,如图:

问过学长和同学后无果,就到小组提问中寻找,发现有同学已经出现过这个问题。

  • 解决方法2:询问该名同学后,说可能是因为上传的文件夹没有更改与增添,就在敲了新的代码以后再次push,就成功了。

代码托管

运行statistics脚本截图:

上周考试错题总结

  • Linux Bash中,查找当前目录中前天创建的Java文件的命令是(find . –name *.java -ctime 2)。错题原因:没有添加-name,归根结底是自己的记忆不够彻底,过于死板。

  • ~0b1011的十进制值是(-12)。 错题原因:没有转换成补码来计算。

  • 0x10%9 的结果是( 7 )。0x10&9 的结果是(0)。错题原因:虽然当时是将0x看成0×(乘),但不存在×表示的乘法运算,其实自己也在书上看过0x表示十六进制数,但记忆不够深刻。

其他(感悟、思考等,可选)

经过博客的总结与反思,让我意识到自己从以前到现在的学习方式都存在很大的问题。以前习惯了老师讲课,自己甚至有些被动的接受知识,而从这学期开始经历的转变学习方式的过渡期实在有些长了。归根结底,还是自己的懒惰在作祟。希望能慢慢改掉拖延的坏习惯,一口吃不成个胖子,但可以每天吃几口,慢慢长成个胖子。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 8/8 1/1 20/20
第二周 164/172 1/2 25/45
第三周 248/420 1/3 25/70

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:30小时

  • 实际学习时间:25小时

参考资料