20172326《程序设计与数据结构》第三周学习总结

学号 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

参考资料

原文地址:https://www.cnblogs.com/326477465-a/p/8635643.html