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

时间:2019-09-22
本文章向大家介绍20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结,主要包括20182330 2019-2020-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 <math.h>声明类似,在java中用来申明包中的类。变成报错时,可以看看自己有没有声明,我经常忘记。
  3. 格式化输出——NumberFormat类中getPercentInstance是以百分比格式输出,getCurrencyInstance方法是以货币格式输出。DecimalFormat类是以十进制格式输出。声明是import java. text.DecimalFormat。
  4. 特殊的枚举型数据类型,枚举型是一种特殊的类,枚举型变量是对象变量。(这点特殊在编译代码时让我发现编译好的class文件名中多了$变量名)。

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

  • 问题1:布尔值是java不同于c语言的一点,那他究竟有什么作用?相当于c语言中的哪一部分?
  • 问题1解决方案:将boolean视作一个开关,刚开始是一个状态,当程序运行到某个设定好的条件时,开关切换到另一个状态,即可退出循环。
  • 问题2:类和包究竟有什么关系?public类具体是修饰什么的,为什么当其存在时文件名与其所修饰的类要相同?
  • 问题2解决方案:java包是一个相关类的集合。包相当于模块,类相当于模块下各个功能的实现。包(package)相当于姓名中的“姓”,类(class)相当于“名”。所以在调用某类方法 的时候,不仅需要指明方法所在的“名”,即类,还要指明方法类所在的“姓”,即包。这样编译器才知道你调用的方法是哪一个。

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

  • 问题1:可以编译但出现报错

  • 问题1解决方案:

    没有认真看书,解决了类型问题就可以运行了
  • 问题2:

  • 问题2解决方案:回到vim努力尝试,发现问去掉两个.0就OK了。为什么?暂时未解决,准备明天去问老师。
  • 问题3:git push又出现了bug,传不上去了

  • 问题3解决方案:忘了上回的强制提交,求助百度说可以查找

    试了一下前两条查看版本的无果。于是看到第四条特别眼熟,记住他please!
git push -f origin

代码托管

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

上周考试错题总结

  • 错题1

  • 分析:一个程序在执行之前先从辅助存储器加载进入主存储器,处理器不用读取每一个命令。这是冯诺依曼体系结构的一部分。他解决了当时计算机存储空间有限、程序无法存储等,且运行速度较慢的问题。通过计算机内部存储器保存运算程序,程序员仅仅通过存储器写入相关运算指令,计算机便能立即执行运算操作,大大加快运算效率。
  • 错题2

  • 分析:随机存取中任何项都可以仅根据其地址检索。随机存取就是直接存取。
  • 错题3

  • 分析:任何有趣的问题都很复杂,很难简单地解决。通过分解问题,我们可以为每一块建立小的解决方案,然后集成这些碎片。答案D是正确的,但这并不是我们将问题分解成碎片的原因。书看的不认真,理解不够。
  • 错题4

  • 分析:看到了书上说java是一个高级语言,但是没有提到他是第四代语言。就记下来,java产生于第四代。
  • 错题5

  • 分析:任何语言执行程序前都需要被转换成机器语言
  • 错题6

  • 分析:A中没有参数,B中多了个分号,C中private私有代替public共有说明他不能被任何人执行,所以程序没有意义。当时对于main方法没有理解透。
  • 错题7

  • 分析:理解的意思是对的,只是这个选项有些让人难以辨别。总之就是在屏幕上输出就对了。
  • 错题8

  • 分析:对标识符掌握不够。B保留字class不能作为标识符,CD中"!""'"."i"没有注明他的用法,但他是一个可被认可的标识符。
  • 错题9

  • 分析:错误分为编译时错误、运行时错误、逻辑错误。语法有错误时出现编译不通过的情况,他保证技术上的正确。运行时错误是导致操作非正常中断,如除以0等。逻辑错误的表现形式很多,可以编译通过,必须经过彻底检查。题目有输出说明不是前两种错误,输出错误说明一定是逻辑错误。
  • 错题10

  • 分析:类以大写字母开头!其余都是小写,没有空格!!!
  • 错题11

  • 分析:变量名需要折中过度,表意清楚。驼峰命名法:
    1.变量名应该用有意义的英文单词
    2.变量名如果只有一个单词,则所有的字母小写
    3.变量名如果由多个英文单词组成,则从第二个单词开始首字母大写
  • 错题12

  • 分析:{用于打开一个块,因此}用于关闭该块。(用于打开表达式,因此)是关闭表达式所需要的。[用于启动数组索引,因此]需要关闭数组索引。<是“小于”,>是“大于”,这两个值不需要放在一起,所以<不需要关闭字符。
  • 错题13

  • 分析:Java源代码和Java字节码都不能执行。两者都必须编译或解释!!
  • 错题14
  • 分析:java大小写敏感,public是保留字,Public不是!
  • 错题15

  • 分析:这个除法是从左到右执行的,所以先执行50 / 20。因为50和20是int,所以结果是2。接下来,执行2 / 6,即0。注意,如果从右到左执行除法,则计算值将改为50 /(20 / 6)= 50 / 3 = 16。做的时候模糊以为编程时不能连除。
  • 错题16

  • 分析:好不容易这道题看懂了题目什么意思,错误在于,如果x是正的,则执行x++否则如果x是负的,则执行x,否则什么都不会发生,或者x不受影响,并不是说他就变成了0。
  • 错题17

  • 分析:这道题是点错,我记得当时看到switch就果断选了那个选项。break用法为从switch个例中退出和退出本层循环。
  • 错题18

  • 分析:可以使用<、>、==、!=、<=、>=直接比较char变量,但是必须使用compareTo()、equals()和equalsIgnoreCase()进行任何字符串比较。
  • 错题19

  • 分析:instantiation是实例化的意思,“实例化”意味着创建一个对象的新实例即为B,还是英语不太好。
  • 错题20

  • nextFloat生成一个范围为[0,1]的伪随机数;乘以10得到[0,10]范围内的数;减去5得到范围内的数[- 5,5]。记得是乘以max然后减去相应范围。
  • 错题21

  • compareTo的用法回顾一下,如果两个字符串相同,compareTo生成0;如果第一个字符串在第二个字符串之前出现,则生成-1;如果第一个字符串在第二个字符串之后出现,则生成+1。
  • 错题22

  • 这点需要好好学习一下。==这只适用于int、short、byte、long、char和boolean类型,但不适用于double或float变量。如果要测试两个双变量x和y, (x == y)只有恰好等于最后一个小数点时才为真。相反,比较这两个值是很常见的,但是允许值有一个小的差异。例如,如果= 0.000001,我们可以用(x - y <=)而不是(x == y)来测试x和y,这样会有一个足够接近的范围。
  • 错题23

  • 理解错误。第二个语句不能编译!定义字符串类型,但是赋值却是数字类型,编译时无法完成数字到字符串的转化。
  • 错题24
  • 当时没有反应过来,123是字符串,+是连接符,后输出4,所以结果应该是1234.
  • 错题25

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

    结对及互评

评分标准

  1. 正确使用Markdown语法(加1分):
    • 不使用Markdown不加分
    • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
    • 排版混乱的不加分
  2. 模板中的要素齐全(加1分)
    • 缺少“教材学习中的问题和解决过程”的不加分
    • 缺少“代码调试中的问题和解决过程”的不加分
    • 代码托管不能打开的不加分
    • 缺少“结对及互评”的不能打开的不加分
    • 缺少“上周考试错题总结”的不能加分
    • 缺少“进度条”的不能加分
    • 缺少“参考资料”的不能加分
  3. 教材学习中的问题和解决过程, 一个问题加1分

  4. 代码调试中的问题和解决过程, 一个问题加1分

  5. 本周有效代码超过300分行的(加2分)
    • 一周提交次数少于20次的不加分
  6. 其他加分:
    • 周五前发博客的加1分
    • 感想,体会不假大空的加1分
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分
    • 有动手写新代码的加1分
    • 课后选择题有验证的加1分
    • 代码Commit Message规范的加1分
    • 错题学习深入的加1分
    • 点评认真,能指出博客和代码中的问题的加1分
    • 结对学习情况真实可信的加1分
  7. 扣分:
    • 有抄袭的扣至0分
    • 代码作弊的扣至0分
    • 迟交作业的扣至0分

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 参考示例

点评过的同学博客和代码

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

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

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第三周 500/1000 3/7 22/60
  • 计划学习时间:20小时

  • 实际学习时间:25小时

  • 改进情况:提高效率

参考资料

原文地址:https://www.cnblogs.com/weiii/p/11569303.html