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

目录

  • 20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结
    • 教材学习内容总结
      • 第二章
      • 第三章
    • 教材学习中的问题和解决过程
    • 代码调试中的问题和解决过程
    • 代码托管
    • 上周考试错题总结
    • 结对及互评
      • 博客中值得学习的或问题:
      • 代码中值得学习的或问题:
      • 点评过的同学博客和代码
    • 其他
    • 学习进度条
    • 参考资料

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

教材学习内容总结

第二章

  1. 计算机体系结构
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第1张图片
  2. 关于System.out.println的理解——对象out存在于system类。System.out对象表示输出设备或者文件(默认是屏幕);println方法是System对象提供给用户使用的一个服务;发送给方法的数据叫做参数(即要打印的字符串)。
  3. print与println——print与println都是System.out对象提供给用户的服务。println方法信息输出后,光标换行 ,而print不换行。记住!println打印本句信息之后才换行的。调用不带参数的println方法将输出一个空白行。
  4. 字符串——字符串常量不能占多行,如果太长就要用字符串连接操作(+)拼接;字符串可以与数字拼接,若数字没有在双括号里,他们就不是字符串,电脑会自动转换他们为字符串;+用于字符串连接与算数加法,用圆括号括起来优先执行算数加法运算。
  5. 转义字符——\b回退键\t制表符\n换行\r回车"双引号'单引号\反斜杠
  6. 变量声明——通知编译程序在内存中留出足够的位置来保存指定类型的数据,同时还标出代表该存储位置的名称。
  7. java中的final常量与c中的const常量用法相同
  8. 数据类型转换及其三种转换技术:压缩类型转换即大变小,容易装不下丢失数据;扩展类型转换即小变大,数据完整性比较高。三种转换技术就是:赋值类型转换【把此类变量赋给彼变量时,此变量自动转换为彼变量类型】、提升类型转换【做一个运算然后将变量类型转换】、强制类型转换【要转变类型的变量前面加(需更新的变量名)】。

第三章

  1. String类的几种常见方法
  2. random、math类。import声明的用法,与C语言中#include 声明类似,在java中用来申明包中的类。变成报错时,可以看看自己有没有声明,我经常忘记。
  3. 格式化输出——NumberFormat类中getPercentInstance是以百分比格式输出,getCurrencyInstance方法是以货币格式输出。DecimalFormat类是以十进制格式输出。声明是import java. text.DecimalFormat。
  4. 特殊的枚举型数据类型,枚举型是一种特殊的类,枚举型变量是对象变量。(这点特殊在编译代码时让我发现编译好的class文件名中多了$变量名)。

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

  • 问题1:布尔值是java不同于c语言的一点,那他究竟有什么作用?相当于c语言中的哪一部分?
  • 问题1解决方案:将boolean视作一个开关,刚开始是一个状态,当程序运行到某个设定好的条件时,开关切换到另一个状态,即可退出循环。

20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第2张图片

  • 问题2:类和包究竟有什么关系?public类具体是修饰什么的,为什么当其存在时文件名与其所修饰的类要相同?
  • 问题2解决方案:java包是一个相关类的集合。包相当于模块,类相当于模块下各个功能的实现。包(package)相当于姓名中的“姓”,类(class)相当于“名”。所以在调用某类方法的时候,不仅需要指明方法所在的“名”,即类,还要指明方法类所在的“姓”,即包。这样编译器才知道你调用的方法是哪一个。

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

  • 问题1:可以编译但出现报错
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第3张图片

  • 问题1解决方案:

    没有认真看书,解决了类型问题就可以运行了
  • 问题2:
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第4张图片

  • 问题2解决方案:回到vim努力尝试,发现问去掉两个.0就OK了。当时定义的类型为
  • 问题3:git push又出现了bug,传不上去了
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第5张图片

  • 问题3解决方案:忘了上回的强制提交,求助百度说可以查找
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第6张图片
    试了一下前两条查看版本的无果。于是看到第四条特别眼熟,记住他please!
git push -f origin

20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第7张图片

代码托管

20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第8张图片
20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第9张图片

上周考试错题总结

  • 错题1
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第10张图片

  • 分析:一个程序在执行之前先从辅助存储器加载进入主存储器,处理器不用读取每一个命令。这是冯诺依曼体系结构的一部分。他解决了当时计算机存储空间有限、程序无法存储等,且运行速度较慢的问题。通过计算机内部存储器保存运算程序,程序员仅仅通过存储器写入相关运算指令,计算机便能立即执行运算操作,大大加快运算效率。
  • 错题2
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第11张图片

  • 分析:随机存取中任何项都可以仅根据其地址检索。随机存取就是直接存取。
  • 错题3
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第12张图片

  • 分析:任何有趣的问题都很复杂,很难简单地解决。通过分解问题,我们可以为每一块建立小的解决方案,然后集成这些碎片。答案D是正确的,但这并不是我们将问题分解成碎片的原因。书看的不认真,理解不够。
  • 错题4
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第13张图片

  • 分析:看到了书上说java是一个高级语言,但是没有提到他是第四代语言。就记下来,java产生于第四代。
  • 错题5
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第14张图片

  • 分析:任何语言执行程序前都需要被转换成机器语言
  • 错题6
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第15张图片

  • 分析:A中没有参数,B中多了个分号,C中private私有代替public共有说明他不能被任何人执行,所以程序没有意义。当时对于main方法没有理解透。
  • 错题7
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第16张图片

  • 分析:理解的意思是对的,只是这个选项有些让人难以辨别。总之就是在屏幕上输出就对了。
  • 错题8
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第17张图片

  • 分析:对标识符掌握不够。B保留字class不能作为标识符,CD中"!""'"."i"没有注明他的用法,但他是一个可被认可的标识符。
  • 错题9
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第18张图片

  • 分析:错误分为编译时错误、运行时错误、逻辑错误。语法有错误时出现编译不通过的情况,他保证技术上的正确。运行时错误是导致操作非正常中断,如除以0等。逻辑错误的表现形式很多,可以编译通过,必须经过彻底检查。题目有输出说明不是前两种错误,输出错误说明一定是逻辑错误。
  • 错题10
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第19张图片

  • 分析:类以大写字母开头!其余都是小写,没有空格!!!
  • 错题11
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第20张图片

  • 分析:变量名需要折中过度,表意清楚。驼峰命名法:
    1.变量名应该用有意义的英文单词
    2.变量名如果只有一个单词,则所有的字母小写
    3.变量名如果由多个英文单词组成,则从第二个单词开始首字母大写
  • 错题12
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第21张图片

  • 分析:{用于打开一个块,因此}用于关闭该块。(用于打开表达式,因此)是关闭表达式所需要的。[用于启动数组索引,因此]需要关闭数组索引。<是“小于”,>是“大于”,这两个值不需要放在一起,所以<不需要关闭字符。
  • 错题13
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第22张图片

  • 分析:Java源代码和Java字节码都不能执行。两者都必须编译或解释!!
  • 错题14
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第23张图片
  • 分析:java大小写敏感,public是保留字,Public不是!
  • 错题15
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第24张图片

  • 分析:这个除法是从左到右执行的,所以先执行50 / 20。因为50和20是int,所以结果是2。接下来,执行2 / 6,即0。注意,如果从右到左执行除法,则计算值将改为50 /(20 / 6)= 50 / 3 = 16。做的时候模糊以为编程时不能连除。
  • 错题16
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第25张图片

  • 分析:好不容易这道题看懂了题目什么意思,错误在于,如果x是正的,则执行x++否则如果x是负的,则执行x,否则什么都不会发生,或者x不受影响,并不是说他就变成了0。
  • 错题17
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第26张图片

  • 分析:这道题是点错,我记得当时看到switch就果断选了那个选项。break用法为从switch个例中退出和退出本层循环。
  • 错题18
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第27张图片

  • 分析:可以使用<、>、==、!=、<=、>=直接比较char变量,但是必须使用compareTo()、equals()和equalsIgnoreCase()进行任何字符串比较。
  • 错题19
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第28张图片

  • 分析:instantiation是实例化的意思,“实例化”意味着创建一个对象的新实例即为B,还是英语不太好。
  • 错题20
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第29张图片

  • nextFloat生成一个范围为[0,1]的伪随机数;乘以10得到[0,10]范围内的数;减去5得到范围内的数[- 5,5]。记得是乘以max然后减去相应范围。
  • 错题21
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第30张图片

  • compareTo的用法回顾一下,如果两个字符串相同,compareTo生成0;如果第一个字符串在第二个字符串之前出现,则生成-1;如果第一个字符串在第二个字符串之后出现,则生成+1。
  • 错题22
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第31张图片

  • 这点需要好好学习一下。==这只适用于int、short、byte、long、char和boolean类型,但不适用于double或float变量。如果要测试两个双变量x和y, (x == y)只有恰好等于最后一个小数点时才为真。相反,比较这两个值是很常见的,但是允许值有一个小的差异。例如,如果= 0.000001,我们可以用(x - y <=)而不是(x == y)来测试x和y,这样会有一个足够接近的范围。
  • 错题23
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第32张图片

  • 理解错误。第二个语句不能编译!定义字符串类型,但是赋值却是数字类型,编译时无法完成数字到字符串的转化。
  • 错题24
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第33张图片
  • 当时没有反应过来,123是字符串,+是连接符,后输出4,所以结果应该是1234.
  • 错题25
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第34张图片

  • 分析:题目意思为:Math类中的所有方法都声明为静态的。确实,Math类方法设计用于算术表达式,因此不需要任何实例来使用它们。这是通过确保所有数学方法都是静态的来实现的。

结对及互评

博客中值得学习的或问题:

  • 博客引用生动活泼,解决问题时运用了多种方式。
  • 问题:排版简单,缺乏新意希望加强markdown水平

代码中值得学习的或问题:

  • 代码练习较少,希望多加练习
    基于评分标准,我给本博客打分:14分。得分情况如下:
  1. 正确使用Markdown语法(加1分)
  2. 模板中的要素齐全(加1分)
  3. 教材学习中的问题和解决过程(加3分)
  4. 代码调试中的问题和解决过程(加4分)
  5. 其他加分(加5分)
  6. 进度条中记录学习时间与改进情况(1)
  7. 感想,体会不假大空(1)
  8. 有动手写新代码(1)
  9. 排版精美(1)
  10. 错题学习深入(1)
  11. 点评认真,能指出博客和代码中的问题(1)
  12. 结对学习情况真实可信(1)

点评过的同学博客和代码

  • 本周结对学习情况
    20182314
  • 结对照片
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结_第35张图片

  • 结对学习内容
  1. vim编译问题
  2. java编程问题
  3. 博客撰写问题
  • 上周博客互评情况
  • 20182301
  • 20182314

其他

  1. 吸取了上周博客乱七八糟的教训,这次简单实在,再也不花里胡哨
  2. 编程逐渐走上正轨,希望能够独自思考真正解决一些有意义的问题。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 42/42 2/2 20/20
第三周 394/471 2/4 25/45
  • 计划学习时间:20小时

  • 实际学习时间:25小时

  • 改进情况:提高效率

参考资料

  • 《Java程序设计与数据结构教程(第二版)》

  • 《Java程序设计与数据结构教程(第二版)》学习指导

  • 冯诺依曼体系结构

你可能感兴趣的:(20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结)