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

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

教材学习内容总结

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

  • 问题1:不理解compareTo()方法
  • 问题1解决方案:

    网上查找的较易理解的实例

    public class Test{
       public static void main(String args[]){
      Integer x = 5;
      System.out.println(x.compareTo(3));
      System.out.println(x.compareTo(5));
      System.out.println(x.compareTo(8));
     }
    }

    编译以上程序,输出结果为:

    1

    0

    -1

  • 总结:compareTo()方法可用于比较Byte, Double, Integer, Float, Long,Short或String等类型的参数该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。在java编程中,我们会偶尔遇到字符串大小比较的问题,compareTo()方法很简单就实现这种功能。该方法用于判断一个字符串是大于、等于还是小于另一个字符串。判断字符串大小的依据是根据它们在字典中的顺序决定的。
    int compareTo(String str)

    返回一个整形值,正值、0、负值分别表示本对象的字符串按字典顺序位置后于、等于或先于str对象的字符串。


  • 问题2:不理解课本上例7.4中以下两个方法的作用:

    private void reducde()
private int gcd(int num1,int num2)
  • 问题2解决方案:

    通过查阅资料了解到两个方法分别是有关公约数和公倍数的方法,保证输出的分数是最简形式,即没有公约数。这两个方法都被声明为具有private可见性,因为不允许直接从RationalNumber类的外部执行这些方法,这些方法的存在不是为了提供对象的服务,而仅仅是为了支持对象的其他服务。


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

  • 问题1:做pp7_4项目时,以下代码输出为0,不符合项目要求
System.out.println(r1.compareTo(r2));

相关代码截图如下:

解决前:

解决后:

  • 问题1解决方案:

    通过查阅资料以及大量的尝试最终发现自己犯了个低级错误,(double)(int a / int b);是先取整再转换为double型。


  • 问题2:有关 git commit 使用理解不到位。
  • 问题2解决方案:

    通过询问助教以及自身实践总结出关于git commit的以下几点:

    (1)只要改动了.java文件,最好接着就git add . ;git commit-m"" ; git push 。

    (2)使用git add . 时要注意此命令是对所有新建的或者改动的.java文件进行操作,所以尽量做一个项目就接着git commit 。

    (3)提供一个修改commit的较简单方法:

    vi 想重新commit的.java文件,进行任意一处改动,比如可在注释中加个空格,然后git add . ;git commit -m""

    ;git push即可。


代码托管

上周考试错题总结


  • 错题1:

    In Java a variable may contain

A.a value or a reference

B.a package

C.a method

D.a class

E.any of the above

答案:A 我的选择:E

理解:在JAVA中变量只能包含一个值或一个引用。


  • 错题2:

    If two variables contain aliases of the same object then

A.the object may be modified using either alias

B.the object cannot be modified unless there‘s but a single reference to it

C.a third alias is created if/when the object is modified

D.the object will become an "orphan" if both variables are set to null

E.answers A and D are correct

答案:E 我的选择:B

理解:对象可以使用别名进行修改,如果两个变量都设置为null,那么对象将变成一个“孤儿”。


  • 错题3:

    Which properties are true of String objects?

A.Their lengths never change

B.The shortest string has zero length

C.individual characters within a String may be changed using the replace method

D.The index of the first character in a string is one

E.Only A and B are true

答案:E 我的选择:B

理解:字符串的长度永远不会改变,字符串最短的长度为0。


  • 错题4:

    What is the function of the dot operator?

A.It serves to separate the integer portion from the fractional portion of a floating point number

B.It allows one to access the data within an object when given a reference to the object

C.It allows one to invoke a method within an object when given a reference to the object

D.It is used to terminate commands (much as a period terminates a sentence in English)

E.Both B and C are correct

答案:E 我的答案:A

理解:点算符的功能为:它允许在给定对象的引用时访问对象中的数据,当给定对象的引用时,它允许在对象中调用方法。


  • 错题5:

    Which of the following will yield a pseudorandom number in the range [ -5, +5 ) given the following:

    Random gen = new Random( );

A.gen.nextFloat( ) * 5

B.gen.nextFloat( ) * 10 - 5

C.gen.nextFloat( ) * 5 - 10

D.gen.nextInt( ) * 10 - 5

E.gen.nextInt(10) - 5

答案:B 我的选择:D

错题原因:没有注意到Float和Int。


  • 错题6:

    Consider the following two lines of code. What can you say about s1 and s2?

    String s1 = "testing" + "123";

    String s2 = new String("testing 123");

A.s1 and s2 are both references to the same String object

B.the line declaring s2 is legal Java; the line declaring s1 will produce a syntax error

C.s1 and s2 are both references to different String objects

D.s1 and s2 will compare "equal"

E.none of the above

答案:C 我的选择:A

理解:s1和s2是对不同对象的引用,无论s1和s2对应的变量是否相等。


  • 错题7:

    The String class‘ compareTo method

A.compares two string in a case-independent manner

B.yields true or false

C.yields 0 if the two strings are identical

D.returns 1 if the first string comes lexically before the second string

E.none of the above

答案:C 我的选择:A

理解:string类的compareTo方法中如果两个字符串是相同的,则得到0。


  • 错题8:

    The advantage(s) of the Random class‘ pseudo-random number generators, compared to the Math.random method, is that

A.you may create several random number generators

B.the generators in Random are more efficient than the one in Math.random

C.you can generate random ints, floats, and ints within a range

D.you can initialize and reinitialize Random generators

E.all but answer B

答案:E 我的选择:C

理解:伪随机数生成器相对于Math.random的优势在于:可以创建几个随机数生成器,可以在一个范围内生成随机的int,floats和ints。


  • 错题9:

    The advantages of the DecimalFormat class compared with the NumberFormat class include

A.precise control over the number of digits to be displayed

B.control over the presence of a leading zero

C.the ability to truncate values rather than to round them

D.the ability to display a % automatically at the beginning of the display

E.only A and B

答案:E 我的选择:A

理解:与NumberFormat类相比,DecimalFormat类的优势在于可以精确控制显示的数字的数目,可以控制一个前导0的存在。


  • 错题10:

    When comparing any primitive type of variable, == should always be used to test to see if two values are equal.

A.true

B.false

答案:B 我的选择:A

理解:==号可以用来测试两个值是否相等,但是它的作用不止如此。


  • 错题11:

    If you need to import not only the top-level of a package, but all its secondary levels as well, you should write: import package..;

A.true

B.false

答案:B 我的选择:A

理解:如果不仅需要导入一个包的顶层,还需要导入所有的二级级别,那么应该编写:import package.*;


  • 错题12:

    The printf method within System.out is designed to ease the conversion of legacy C code into Java.

A.true

B.false

答案:A 我的选择:B

理解:系统内的print方法,其目的是为了简化遗留的c代码到JAVA的转换。


上周课堂实践补充截图:

  • 教训:在蓝墨云提交时一定要点提交作业再提交,而且尽量用自己的数据网,以防止上传不上去。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 28/28 1/1 16/16
第二周 710/738 1/2 20/36
第三周 426/1164 1/3 16/52
第四周 1068/2232 2/5 20/72
  • 计划学习时间:16小时
  • 实际学习时间:20小时
  • 改进情况:继续加强对JAVA的学习。

参考资料

原文地址:https://www.cnblogs.com/zhaoxiaohai/p/8714930.html

时间: 2024-08-29 22:53:39

20172311 《程序设计与数据结构》第四周学习总结的相关文章

2014025635(09)《嵌入式程序设计》第三,四周学习总结

1.第三四周学习情况 本周学习进度不慢,上课也能跟着老师敲代码了,老师说一些指令也知道是什么意思了,这两周我认为非常重要的快捷键就是tab键,补全代码,我自己手敲肯定出现很多错误,必须Tab键!!!!!!!!!!!!!!! 2.1实验楼学习内容 2.1.1安装arm-linux-gcc交叉编译工具 先复制链接到剪切板上,保存关闭剪切板 输入wget命令,然后再复制粘贴,就可以将交叉编译工具下载到实验楼环境 2.1.2.解压缩交叉编译工具源码 解压缩后生成的目录是gcc-3.4.6-glibc-2

201521123116 《java程序设计》第十四周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. ①关系型数据库的定义:使用表(table)来存储数据:使用行(row)区分不同- 记录,每行代表一条记录:每一行由若干列(column,字段)组成. ②在JDBC中释放资源时,按照ResultSet.Statement.Connection的顺序依次关闭. ③JDBC编程一般步骤 1.与数据库建立连接(Connection) 2.向数据库发送SQL语句(statement) 3.获得和处理查询或更新语句返回的

201671010119 2016-2017-2《Java程序设计》第十四周学习心得

本周老师对第十一章事件处理进行了重点讲解 ,讲解之前老师先在PPT上放了几道题目,对我们自己学习十一章进行了一个随堂测验.通过这次随堂测验,我觉得我看书还是不够仔细,有些该注意的细节没有注意到.通过测验,我知道了属于容器的组件有JPanel:paintComponent方法有一个Graphics类型的参数:在类中若要处理ActionEvent事件,则该类需要实现的接口是:ActionListener:容器通过方法setLayout()设置某种布局.在课后我也找到了这些知识点,结合举例,使我对这些

201621123014《Java程序设计》第十四周学习总结

1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 答:将原来存放在文件中的数据存放到数据库中:从借书方面来看,要建立学生表students和书表books. 2.2 系统中使用到了JDBC中什么关键类? 答:使用了JDBC的DriverManager.Connection.Statement.ResultSet等类. 2.3 截图数据库相关模块的关键

201671010130 2016-2017-2 《Java程序设计》第十四周学习小结

模型(model):用于存储数据的对象. 视图(view):为模型提供数据显示的对象. 控制器(controller):处理用户的交互操作,对于用户的操作作出响应,让模型和视图进行必要的交互,即通过视图修改.获取模型中的数据:当模型中的数据变化时,让视图更新显示. 在网格布局对象的构造器中,需要指定行数和列数:panel.setLayout(new GridLayout(x,y)); 消息对话框的创建 javax.swing包中的JOptionPane类的静态方法: public static

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

20172311 2017-2018-2 <程序设计与数据结构>第五周学习总结 教材学习内容总结 第五六章整体上来讲主要学习了条件判断与循环.小的知识点主要还有: 1.语句执行的顺序称为控制流,方法调用会引起控制流的改变. 2.相等性运算符由两个并列的等号组成,不要和只有一个等号的赋值运算符想混淆. 3.相等性运算符和关系运算符的优先级比算术运算符的优先级低. 4.在三种逻辑运算符中,逻辑非具有最高的优先级,其次是逻辑与,最后是逻辑或.逻辑运算符经常用于构成复杂的条件. 5.编写语句时适当的缩

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

20172311 2017-2018-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 本周对异常和递归进行了学习 异常的处理方式有两种:一种是直接抛出,并从异常处终止程序:另一种是捕获并处理异常,从而使程序继续运行. 捕获和处理异常主要运用try-catch语句. 通过继承Exception类可以自定义一个新的异常 处理IO异常的常用方法是抛出异常. 对于某些问题,递归是最精炼和适当的解法,但对于其他问题,递归则不如迭代方法直接. 教材学习中的问题和解决过程 问题:什么是IO操作

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

20172311<程序设计与数据结构>第七周学习总结 教材学习内容总结 第十一章 二叉查找树 树是一种非线性结构,其中的元素被组织成一个层次结构 含有m个元素的平衡n元树具有的高度为lognm 树的数组实现之计算策略: 如果我们存储的树不是完全的或者只是相对完全的,则该数组会为不包含数据的树位置分配空间 树的数组实现之模拟链接策略: 这种方式使得元素能够连续存储在数组中,因此不会浪费空间,但是该方式增加了删除树中元素的成本. 树的遍历 1.先序遍历 即根节点在左右子树之前遍历: 先访问根节点

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

20172311<程序设计与数据结构>第九周学习总结 教材学习内容总结 第十五章 图 堆(heap)就是具有两个附加属性的一颗二叉树 1.它是一颗完全树 2.对每一个节点,它小于等于或者大于等于其左孩子和右孩子 HeapADT的UML描述 addElement方法将给定的Comparable元素添加到堆中的恰当位置处,且维持该堆的完全性属性和有序属性 因为一个堆就是一颗完全树,所以对于插入的新节点而言,只存在一个正确的位置,且它要么是h层左边的下一个空位置,要么是h+1层左边的第一个位置(如果