学号 20172326 《程序设计与数据结构》第3周学习总结
教材学习内容总结
类的学习
String类的部分方法的应用
不同Random方法的使用
Math类的应用
教材学习中的问题和解决过程
- 问题1:教材P74别名中提到数据与字符串在赋值时存储的位置不同,即数据赋相同值后存于不同的内存单元,而字符串则是引用地址。
- 答案:这是由Java的不同类型造成的,即Java中含有栈内存与堆内存。前者用于存储数据及变量,而字符串则储存在后者之中。栈内存的一个特点是数据共享。而对于堆内存,没有数据共享,只能以一个个的地址方式来引用。
- 问题2:SR3.15中提到为什么String不需要显式地导入到程序中。
- 问题2解决方案:String属于lang类,有以下几种1、String,八种基本数据类型的包装类都在这个包中;2、Object:类层次结构的根类;3、Math:执行基本数学方法运算;4、StringBuffer:线程安全的可变字符序列;5、thread:是程序中的执行线程。Java虚拟机允许应用程序并发地运行多个执行线程。
代码调试中的问题和解决过程
-
问题1:PP3-1
-
问题1解决方案:第一个问题很简单,就是命令的错误,但第二个可以发现,姓氏少了,问题出在哪?仔细查看命令为substring(1,1),问题出现,字符串是由0开始的所以改为(0,0)就好了,然后我在想如果要求输出的为大写该怎样?再仔细查看例子给的命令,toUpperCase和substring和结合就行了。
-
问题2:PP3.3中中间四位中类似于0001的号码如何输出的问题
-
问题2解决方案:首先,我开始直接使用了Random类的nextInt(456)+100的方法,但范围会缩小。赵乾宸同学机智的利用了if语句的方法解决了它。但有没有别的方法呢?强无敌的张旭升学长简单的解决了它,即使用DecimalFormat类的方法直接格式化数据。
真是一个不好好看教材的好例子
代码托管
上周考试错题总结
- 错题1:What value will z have if we execute the following assignment statement? float z = 5 / 10;
- 理解:首先5/10等于0.5,而输入的为5和10,虽然为float型,但因为数据为5和10,所以小数点后没有保留位数,所以为0
- 错题2:What value will z have if we execute the following assignment statement? int z = 50 / 10.00;
- 理解:50/10.00为5,但是z为int型,而运算中含有10.00浮点型,所以运算错误。
- 错题3:A double is wider than a float and a float is wider than an int.
- 理解:正确,如果可容纳的位数更多,那么自然更加宽泛。
- 错题4:A variable of type boolean will store either a 0 or a 1.
- 理解: 在c语言中为1,0,但在Java中就是true和false
- 错题5:You cannot cast a String to be a char and you cannot cast a String which stores a number to be an int, float or double.
- 理解:有强制命令可以实现。
其他(感悟、思考等,可选)
- 现在的题目可以说越来越掌握对思路的要求,同时,不同的方法和类又需要深刻的理解,否则就是PP3-3的下场。今后要更加勤于练习,认真发现问题,解决问题。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 110/200 | 1/1 | 15/15 | |
第二周 | 425/500 | 1/1 | 30 / 30 | |
第三周 | 1155/1000 | 1/1 | 30 / 30 |