20172303 2017-2018-2 《程序设计与数据结构》第3周学习总结

20172303 2017-2018-2 《程序设计与数据结构》第3周学习总结

教材学习内容总结

  • 了解了如何创建对象以及别名的使用
  • 了解了String类的一些方法的作用和使用方法
  • 知道了Java的标准类库是按包分组的
  • 学会了在Java中产生随机数的方法
  • 学会了在Java中使用基本数学函数的方法
  • 基本学会了NumberFormate类和DecimalFormat类的使用方法
  • 学会了枚举型的使用

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

  • 问题1:做SR3.7时,s1.charAt(1)出现的结果是Foundation中的o而不是F
  • 问题1解决方案:改成s1.charAt(0)后出现的结果是F,
    通过这次实验了解了这个方法所说的“返回指定索引处的那个字符”是从0开始的
  • 问题2:不是很清楚静态方法和非静态方法的区别
  • 问题2解决方案:通过在网上查找,自己总结了大概有以下几点区别:
    • 静态方法要使用static进行修饰的,但非静态方法不需要。
    • 静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。
    • 非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。
    • 静态方法效率上要比实例化高,但缺点是不自动进行销毁。
  • 问题3:PP3.3中间三位随机数不能大于655一开始不会做,听好多人说要使用后面学的if语句
  • 问题3解决方法:上课听了老师讲的方法之后恍然大悟,感慨自己还是不够灵活_(:з」∠)_

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

  • 问题1:虚拟机蓝屏了。当时直接心态崩了。
  • 问题1解决方案:去问了王老师,老师说是我上回操作不当导致图形界面损坏(我记得我上回的操作是直接在vim中尝试关闭虚拟机,正常关机不行就使用了强制关机。),使用Ctrl+Alt+F2还是可以进行命令操作的,但是界面会很难看,
    并且所有与图形有关的东西都不能用(可以说就是全部操作都只能使用命令行来输入,右键/左键/点鼠标都是没有用的)。老师提供了两种解决方案,一种是进行修复,老师说虽然只是输几行代码即可,但不能保证成功;第二种方法是重新装一个虚拟机。我最后实施了第二个方案重新花时间重装了一个虚拟机(╥╯^╰╥)

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结(正确为绿色,错误为红色)

  • 错题1:Of the following types, which one cannot store a numeric value? (在下列数据类型中,哪一个不能存储一个数值型数据?)
    • A . int
    • B . byte
    • C . float
    • D . char
    • E . all of these can store numeric values (以上所有类型都可以存储数值型数据)
  • 原因:当时学的时候不是很清楚数值型和字符型的区别
  • 理解情况:通过本周的学习明白了数值型和字符型的区别。最明显的区别应该是字符型数据前后需要打双引号,但数值型不需要。
  • 错题2: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类型,所以会发生运行时错误)
  • 原因:过分拘泥于整型和浮点型是两种不同的表示方法,忘记其实是可以转换的。
  • 理解情况:int值也可以被储存在赋值为float的变量中。
  • 错题3: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 (以上所有情况都需要强制转换)
  • 原因:在阅读课本的过程中,字符型这一块理解得不是很好,所以这回测试很多错题都是错在这一部分。
  • 理解情况:float的储存空间大于int,所以只能强制转换。其余选修都是转换的类型的储存空间小于被转换的类型。
  • 错题4:If x is an int and y is a float, all of the following are legal except which assignment statement? (如果x是一个int类型的数,y是一个float类型的数,下面所有赋值语句中哪个不合法?)
    • A . y = x;
    • B . x = y;
    • C . y = (float) x;
    • D . x = (int) y;
    • E . all of the above are legal (以上全部合法)
  • 原因:还是基本数据类型这一部分自学的不好,很多概念都混淆了,该纠结整型与浮点型区别时不纠结,不该纠结的时候乱纠结(ー`´ー)
  • 理解情况:整型不能接受一个浮点型。
  • 错题5:A double is wider than a float and a float is wider than an int. (一个double类型的数比float类型的数更宽泛,一个float类型的数比一个int类型的数更宽泛。)
    • A . true
    • B . false
  • 原因:与错题3属于同一个问题。
  • 错题6: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. (你不能将字符串强制转换为char类型,也不能将一个字符串强制转换为int、float或double类型。)
    • A . true
    • B . false
  • 原因:觉得后一句是对的,但是还是因为对字符型那块概念不清所以觉得前面是错的。
  • 理解情况:char类型包含在字符串类型中。

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

  • 这周与前两周最大的不同就是助教会经常过来解决我们的问题,很多同学都积极提出问题,但是很遗憾我几乎没有问过问题。在遇到问题时,我总喜欢先自行找方法解决,如果解决不了的话再问同学,问同学也不行的情况下才会去问助教或者老师。然而我这周只遇到了一个同学也解决不了的问题,最后是找老师解决的。
  • 我觉得爱问问题的人有两种:一种是勤于思考,善于用脑,在理解现学知识的情况下能想到一些更深刻或者关于细节的有价值的问题的人;还有一种是不喜欢独立思考,遇到问题不想着自己解决而是无限次地依靠别人来解决问题的人,这类人问的问题都比较简单且价值不是很大。我觉得起码现在的我不是第二种人,但在接下来的学习过程中我希望我能努力成为第一种人,这样对java的学习也有很大帮助。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 120/120 1/1 9/9
第二周 246/366 1/2 9/18
第三周 785/1121 1/3 15/33 学会了使用IDEA
  • 计划学习时间:15小时
  • 实际学习时间:15小时
  • 改进情况:这个星期因为身体恢复得不错所以有了很多敲代码练习的时间,开心ヾ(◍°∇°◍)ノ゙

参考资料

posted @ 2018-03-23 23:22  框框框  阅读(225)  评论(3编辑  收藏  举报