第二三周学习总结

20182313 2019-2020-1 《数据结构与面向对象程序设计》第二周和第三周学习总结

教材学习内容总结

  • 第二章:
  1. 加法及字符串的连接均用运算符“+”实现
  2. 不能将一个类型的值赋给与之不匹配的另一个类型的变量、
  3. Java中没有printf,只有print和println,二者的区别在于前者不会换行。
  4. 使用Scanner类时next后应该与数据类型int或是double对应起来。
  5. java中遵循严格定义的一组优先级规则,从而控制表达式中运算符的计算次序
  • 第三章
  1. 一旦创建String对象,它的值就不能再加长或缩短,也不能改变其中的任何字符。所以String对象是不可变的。但是可以用concat等方法修改
  2. Random类中的nextFloat方法返回一个大于等于0.0且小于1.0的浮点随机数,想要改变范围,可以将其乘上一个对应的值。
  3. Math中的所有方法都是静态方法,即通过类名来调用它们

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

  • 问题一:为什么Random生成随机数的时候生成double类型的时候括号里为什么不加数字?
  • 问题一解决过程:通过同学对课本内容的解释,理解到这句语句本身就是生成一个0到1的随机数,与int类型的随机数不是一个类型。
  • 问题二:包跟类之间有什么区别
  • 问题二解决过程:通过仔细阅读课本,了解二者是一种从属关系,每一个类都属于一个包
  • 问题三:别名这种东西有什么意义,这种定义是不是有点多余
  • 问题三解决过程:当使用一个引用来改变对象时,也等于改变了其他引用指向的值,因为只有一个对象存在。别名可能会有意想不到的结果,所以还是有必要的。

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

  • 问题一:在做PP24的时候,发现无论怎么输入都是输出0.0
  • 问题一解决过程:经过检查代码发现是分母中的数据为int型,计算时会自动变0,把5改为5.0就很简单解决了
  • 问题二:在使用Random类时总是报找不到符号的错误
  • 问题二解决过程:检查代码后发现是最不应该出现的大小写问题,将random的r改为大写即可
  • 问题三:在一个Random的代表程序编译中程序一直报错,每次都是第一行报错
  • 问题三解决过程:这个程序在为class命名时图方便取了Random为名,结果和Random类冲突了,通过改名或简单一点,将R改为r也可解决

代码托管

上周考试课题总结

  • 错题一:When executing a program, the processor reads each program instruction from (当执行一个程序时,处理器从___读取每个程序指令)
    A .secondary memory (storage) (辅助存储器(存储))
    B .the Internet (互联网)
    C .registers stored in the processor (储存在处理器中的寄存器)
    D .main memory (主存储器)
    E .could be any of these (可以是以上这些中的任何一个)
    答案:D
    解析:程序在执行之前首先从辅助存储器加载到主存储器中,这样处理器就不会因为读取每条指令而减慢速度。这种执行存储在内存中的程序的思想被称为存储程序计算机,并在1940年代由约翰冯诺依曼首创。
  • 错题二:Which memory capacity is the largest? (哪个选项的存储容量最大?)
    A .1,500,000,000,000 bytes (1,500,000,000,000个字节)
    B .100 gigabytes (100千兆字节)
    C .3,500,000 kilobytes (3,500,000千字节)
    D .10 terabyte (10太字节)
    E .12,000,000 megabytes (12,000,000百万字节)
    答案:E
    解析:我们将每个容量转换为字节(四舍五入)进行比较。a中的值保持不变,1 1/2万亿字节。b中的值是1000亿字节。c的值是31/2亿字节。d中的值是10万亿字节。答案是12万亿字节。
  • 错题三:Volatility is a property of (易变性是___的性质)
    A .RAM (随机存储器)
    B .ROM (只读存储器)
    C .disk (磁盘)
    D .software (软件)
    E .computer networks (计算机网络)
    答案:A
    解析:波动性意味着,如果断电,内存的内容就会丢失。这是RAM(随机存取存储器)的真实情况,但不是ROM(只读存储器)或磁盘。软件和计算机网络不是记忆的形式。
  • 错题四:The ability to directly obtain a stored item by referencing its address is known as (通过引用地址直接获得存储项的能力被称为___)
    A .random access (随机存取)
    B .sequential access (顺序存取)
    C .read-only access (只读访问)
    D .fetch access (获取访问)
    E .volatility (易变性)
    答案:A
    解析:随机访问意味着传递这样一种思想:访问任何项目都同样容易,并且任何项目都可以仅基于其地址进行检索。随机存取是RAM和ROM存储器使用的存取形式。磁盘访问,称为直接访问,是一个类似的想法,直接和随机访问有时被称为同义词。磁带使用顺序存取。
  • 错题五:It is important to dissect a problem into manageable pieces before trying to solve the problem because (试图解决问题之前,把一个问题分解成可控制的几部分是很重要的,因为)
    A .most problems are too complex to be solved as a single, large activity (大多数问题太复杂,以至于不能作为一个单独大型的活动来解决)
    B .most problems are solved by multiple people and it is easy to assign each piece to a separate person (大多数问题都是由很多人解决的而且把每一部分分配给不同的人是很容易的)
    C .it is easier to integrate small pieces of a program into one program than it is to integrate one big chunk of code into one program (将程序的小部分整合到一个程序中比将一大块代码整合到一个程序中更容易)
    D .our first solution may not solve the problem correctly (我们的第一个方案可能无法正确解决问题)
    E .all of the above (以上皆是)
    答案:A
    解析:任何有趣的问题都太复杂了,无法作为一个单一的活动轻松解决。通过分解问题,我们可以为每一块建立小的解决方案,然后整合这些碎片。答案D是正确的,但这并不是我们将问题分解成碎片的原因。
  • 错题六:Java is an example of a(n) (Java是一个___的例子)
    A .machine language (机器语言)
    B .assembly language (汇编语言)
    C .high-level language (高级语言)
    D .fourth generation language (第四代语言)
    E .both C and D (C和D都是)
    答案:E
    解析:虽然Java是在第四代中创建的,但它显然也是一种高级语言。机器语言是机器的可执行语言,只有用1和0编写的程序。汇编语言使用助记符。第四代语言是包装在程序中的工具,因此用户可以灵活地编写一些代码,以便在程序中执行。
  • 错题七:In the following list, which statement is not true regarding Java as a programming language? (关于Java这种程序设计语言,下面的哪种说法是不正确的?)
    A .It is a relatively recent language, having been introduced in 1995 (它是一种相对现代的语言,于1995年被引入)
    B .It is a language whose programs do not require translating into machine language before they are executed (它是一种执行程序前不需要被转换成机器语言的语言)
    C .It is an object-oriented programming language (它是一种面向对象的程序设计语言)
    D .It is a language that embraces the idea of writing programs to be executed using the World Wide Web (这种语言可以使用万维网来编写要执行程序的想法)
    E .All of the above are true (以上说法都是正确的)
    答案:B
    解析:所有的语言都需要翻译成机器语言。其他关于java的语句都是正确的。
  • 错题八:The names of the wrapper classes are just the names of the primitive data types, but with an initial capital letter.
    A .true
    B .false
    答案:B
    解析:对于大多数包装器类来说,这是正确的,但是对于int(整数)和char(字符)来说,这是错误的。

结对及互评

  • 博客中值得学习的或问题
    1.错题总结非常详细,看得出来非常用心的进行了二次学习
    2.还在博客开端做了目录,排版非常精美。
  • 基于评分标准,我给本博客打分:15分 得分情况如下:
    1.正确使用Markdown语法(加1分)
    2.模板中的要素齐全(加1分)
    3.教材学习中的问题和解决过程(加2分)
    4.代码调试中的问题和解决过程(加4分)
    5.感想,体会不假大空(加1分)
    6.排版精美(加1分)
    7.进度条中记录学习时间与改进情况(加1分)
    8.有动手写新代码(加1分)
    9.错题学习深入(加1分)
    10.点评认真,能指出博客和代码中的问题(加1分)
    11.结对学习情况真实可信(加1分)

点评过的同学博客和代码

  • 本周结对学习情况
    20182306
  • 结对学习内容
    Random,math等类的使用方法

感悟

这一周的学习尽管依旧非常紧张,作业大部分也都是压线交,但是感觉学习也算是慢慢的步入了正轨,和第一周的茫然相比,这两周的忙碌带上了一点目标,知道了自己要做些什么,也在学习中将C语言与java相互印证,感觉收获颇丰,只要掌握了方法,我相信一定能学好这门课。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 10000行 30篇 400小时
第一周 171/171 2/2 20/20
第二周 415/586 3/5 42/62

参考资料

posted on 2019-09-22 22:34  20182313-刘尧  阅读(306)  评论(1编辑  收藏  举报