《数据结构与面向对象程序设计》第2、3周学习总结
学号 2019-2020-2314 《数据结构与面向对象程序设计》第2、3周学习总结
教材学习内容总结
第二章 数据和表达式:
1、字符串的基本概念和String类的引入。
2、print和println方法的介绍和区别,println输出后会换到下一行行首而print不会。
3、使用+连接两个字符串。
4、转义字符的使用,\n表示强制在下一行输出,\t表示一个制表符
5、变量的定义,如果在声明之前加final修饰符,则表明这个常量的值不再改变。
6、赋值语句的使用,不能将一个类型的值赋给与之不匹配的另一个类型的变量。
7、常量是在其存在期间保存一个具体的值。
8、基本的数据类型,整型和浮点型、字符类型、boolean类型(用来判断真假,变量只能从两个值里面二选一)、表达式、算术运算符的使用、运算符的优先级等等。
第三章 使用类和对象
1、创建对象,new运算符返回新创建对象的引用,多个引用变量可以指向同一个对象。
2、String类中比较有用的方法以及String的用法。
3、包的使用和import声明(java.lang包中的所有类将自动引入到每个程序中)
4、Random类和Math类的使用
教材学习中的问题和解决过程
-
问题1:
输出出现问题,无法打印 -
问题1解决方案:我发现我使用了println(+(xx)+)的格式
-
问题2:println("多少钱\n");发现会输出多少钱\n
-
问题2解决方案:看转义字符章节后发现,\n只能在中间使用
代码调试中的问题和解决过程
- 问题1:第二周做计算器实验时启动jdb调试之后,list显示当前运行到第几行时显示找不到源文件。
- 问题1解决方案:首先我请教了同学,未果,然后我问了学长和助教,都未果,最后在冷冲同学的一篇博客的帮助下,按照博客中的步骤解决了这个老大难问题,博客地址如下:解决JAVA单步调试键盘被jdb占用的问题
- 问题2:
代码调试无法通过
- 问题2解决方案:在询问助教后得知类里面不能再次定义类,且定义字符串的时候不能在前面加public这是画蛇添足的,并且调用类里的调用方法必须有和类名一致。
代码托管
上周考试错题总结
- 错题1:
If you want to output the text "hi there", including the quote marks, which of the following could do that? (如果你想输出文本"hi there",包括引号在内,下面哪个语句可以做到?)
A .System.out.println("hi there");
B .System.out.println(""hi there"");
C .System.out.println(""hi there");
D .System.out.println(""hi there"");
E .none, it is not possible to output a quote mark because it is used to mark the beginning and ending of the String to be output (无,不可能输出引号,因为它被用来标记字符串的开始和结束)
正确答案: D 你的答案: B
-
错误原因:
没有好好看课本转义符的内容,转义符内容中明确指出了想要加""必须加一个/。 -
错题2:
word println is a(n) (单词println是一个)
A .method (方法)
B .reserved word (保留字)
C .variable (变量)
D .class (类)
E .String (字符串)
正确答案: A 你的答案: C
-
错误原因:当时并没有学习类的知识,迷迷糊糊乱蒙了一个,现在已经分清类和方法的区别了。
-
错题3:
What value will z have if we execute the following assignment statement? float z = 5 / 10; (如果我们执行下面的赋值语句,得到的z将会是什么值?
A .z will equal 0.0 (z将等于0.0)
B .z will equal 0.5 (z将等于0.5)
C .z will equal 5.0 (z将等于5.0)
D .z will equal 0.05 (z将等于0.05)
E .none of the above, a run-time error arises because z is a float and 5 / 10 is an int (以上都不对,因为z是float类型,5 / 10是int类型,所以会发生运行时错误)
正确答案: A 你的答案: B
- 错误原因:
没有好好理解int型整数相除可能会带来的后果,因为0.5小于1,两个int型会直接使其成为0.
- 错题4:
A cast is required in which of the following situations? (下列哪种情况需要强制转换?)
A .using charAt to take an element of a String and store it in a char (使用charAt来获取字符串元素并将其存储为char类型)
B .storing an int in a float (将一个int类型的数存储为float类型)
C .storing a float in a double (将一个float类型的数存储为double类型)
D .storing a float in an int (将一个float类型的数存储为int类型)
E .all of the above require casts (以上所有情况都需要强制转换)
正确答案: D 你的答案: A
- 错误原因:
没好好看课本类型转换的内容,课本上明确写道不同类型的数值想要转化,需要经过强制转化。
- 错题5:
Assume that x, y, and z are all integers (int) equal to 50, 20, and 6 respectively. What is the result of x / y / z? (假设x、y和z都是整型数(int),分别等于50、20和6。那么x / y / z的结果是什么?)
- 错误原因:
盲目以为这种运算格式是不合理的,误以为这种形式直接就会导致错误。
- 错题6:
What is output with the statement System.out.println(x+y); if x and y are int values where x=10 and y=5? (如果x和y是int类型的数值,x=10,y=5,那么语句System.out.println(x+y);的输出是什么?)
A .15
B .105
C .10 5
D .x+y
E .An error since neither x nor y is a String (因x和y都不是字符串而引起的一个错误)
正确答案: A 你的答案: B
- 错误原因:
先前不知道课本上明确写着+可以两个字符串。
- 错题6
In Java a variable may contain
A .a value or a reference
B .a package
C .a method
D .a class
E .any of the above
正确答案: A 你的答案: E
- 错误原因:
java类中有方法和变量,没有包
- 错题7:
What happens if you attempt to use a variable before it has been initialized?
A .A syntax error may be generated by the compiler
B .A runtime error may occur during execution
C .A "garbage" or "uninitialized" value will be used in the computation
D .A value of zero is used if a variable has not been initialized
E .Answers A and B are correct
正确答案: E 你的答案: A
- 错误原因:
当时没有考虑太多,认为一般不选同时选两项的答案,然后就蒙了A。
- 错题8:
What will be displayed by this command: System.out.println(Math.pow(3, 3-1));
A .9
B .8
C .6
D .4
E .27
正确答案: A 你的答案: C
- 错误原因:
考试前没有认真查看课本,课本上明确写着Math.pow(3, 2) 是三的平方,由于我没有看到,误以为是3*2,闹出了这种笑话。
结对及互评
- 本周结对学习情况
点评:
-
博客中值得学习的或问题:
-
博客引用生动活泼,解决问题时运用了多种方式。
-
问题:排版简单,缺乏新意希望加强markdown水平
-
代码中值得学习的或问题:
- 代码感觉基础较差,写的不是特别好,有待提高
-
基于评分标准,我给本博客打分:16分。得分情况如下:
-
正确使用Markdown语法(加1分)
-
模板中的要素齐全(加1分)
-
教材学习中的问题和解决过程(加3分)
-
代码调试中的问题和解决过程(加4分)
-
其他加分(加7分)
-
进度条中记录学习时间与改进情况(1)
-
感想,体会不假大空(1)
-
有动手写新代码(1)
-
排版精美(1)
-
错题学习深入(1)
-
点评认真,能指出博客和代码中的问题(1)
-
结对学习情况真实可信(1)
其他(感悟、思考等,可选)
经过本周的学习我对java的理解更加深刻,但对于java类的理解还不足,希望在未来的日子里加倍努力,把代码敲好,把博客写好。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第2、3周 | 387/400 | 2/2 | 20/20 |