20155204 2016-2017-2 《Java程序设计》第3周学习总结
教材学习内容总结
- 一个原始码中可以有多个类定义,但只能有一个公开类。
- 留心Scanner对于每一种类型的nextxxxx()方法
- 以Java开头的都是API提供的类
- 使用Integer.valueOf()也是为基本类型建立打包器的方式之一
- Integer打包基本类型时,如果是-128~127之间的数,会直接读取,而超出范围的数就会新建一个实例。如课后1、2题所反映的。
- 索引类似于C语言的指针
- 在类中定义方法,不用返回值可以在方法名前声明void
- 理解了public的含义,是把类公开。
教材学习中的问题和解决过程
- 问题1:教材121页第10题
- 解答:发现自己没有理解这种蜜糖式的循环方法,询问同学理解了row,strs,str的意义。
- 问题2:反编译是一种什么方法?
- 解答:参考了如何将java中的.class文件反编译
- 问题3:在自己编写程序时分不清println和printf的区别。
- 解答:printf:f就是format的意思,也就是格式化,是对输出文字做格式化后再显示在文本模式中。后面常用%d,%f,%b…这些格式控制符号,一般在输出变量类型比较多的时候使用,也用在需要计算机计算或判断后再输出的情形。
print:将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。
println:将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。相当于在print中加了一个%n换行符。当输出信息比较单一简单时,一般采用println,但println也可以用于多种变量类型的输出,中间用“+号”连接,例如System.out.println("3 + 3 = "+a) //这里假设程序中a=6,可能这个例子不算太恰当,但代码中的+前后连接了不同的类型,也可以用println输出。 - 为什么this()调用要出现在构造函数的第一行?
- 解答:参考为什么java的构造方法中this()或者super()要放在第一行
代码调试中的问题和解决过程
问题1:猜数字代码中输入字母程序报错
- 解决:应当在输入时进行判断增强程序健壮性。
问题2:为什么在linux bash里运行完程序后没有换行?增加换行符也不行。
- 未解决。。。
问题3:平均数代码运行结果为NaN
- 解决:需要在java运行时加入指令
问题4:运行一个包中的代码,找不到主类
- 解决:运行时需要写完全吻合名称
问题5:运行这个代码时错误
解决:因为用到了前面定义的store方法,而前面的方法我忘记了编译,所以导致了错误。
代码托管
代码提交过程截图:
代码量截图:
上周考试错题总结
- 错题1:CH03填空:~0b1011的十进制值是(-12)原因:忘记了~是求反
- 错题2:H03 填空 :0x10%9 的结果是( 7 )和CH03 填空 :0x10&9 的结果是(0)原因:忘记了0x
- 错题3:CH03 判断:P64 Shift.java中第三个printf的输出结果是”2的2次方:4”。(X) 原因:应该是有空格的吧。。
其他
这周的学习任务突然加大了,最后的学习有一点紧张,下次应该吸取经验,任务分到每天,不想再度过一个library weekend了。学习方面也逐渐适应了学习方式,看书,代码实践,效果还是不错的。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 33/33 | 1/1 | 18/18 | |
第二周 | 124/157 | 2/2 | 16/34 | |
第三周 | 531/689 | 3/3 | 20/54 |
参考资料
Java学习笔记(第8版)
- 《Java学习笔记(第8版)》学习指导
- 如何将java中的.class文件反编译
为什么java的构造方法中this()或者super()要放在第一行