zoukankan      html  css  js  c++  java
  • 201621123058《java程序设计》第二周学习总结

    1.本周学习总结

          这周java的学习了解到了java种的基本引用类型,java是面向对象的一种语言,内存中储存了基本类型,还有各
    
          种对象。了解了一些运算符和表达式的使用以及各种类型数据,`boolean`、整数类型、浮点类型。还有就是一些
    
          基本的输入输出以及数组的基本定义:如何定义一维数组、多维数组。慢慢试着学会一些基本java程序的编写。
    

    2. 书面作业

    2.1 String-使用Eclipse关联jdk源代码

    2.1.1 查看String对象的源代码(截图),分析String使用什么来存储字符串?

              从源代码来看,`String`是使用字符数组来储存字符串。
    

    2.1.2 分析其构造函数public String(char value[])的作用?

              通过char数组转换成String对象,char作为接口的数组。>来自360问答
    

    2.1.3 阅读public String replace(char oldChar, char newChar)方法的代码,回答String的不可变性在该函数中如何体现?(重点)

              根据源代码中`private final char value[];`可以看出String的不可变性,从final中可以看出其不可变性。
    

    2.1.4 简述String与字符数组的关系,使用字符数组就可以处理字符串,为什么还需要String呢?

             String通过字符数组储存字符串,字符数组是我们常用的处理字符串的方法,String本质上就是字符数组,但要
    
             呈现在软件页面上得是文本,这时String就派上用场了。>来自360问答
    

    2.2 StringBuilder

    2.2.1 结合PTA -2(StringBuilder) ,说明为什么频繁修改字符串时,应该使用StringBuilder而不是String?

            在频繁改变字符串时要占用大量内存 ,而`StringBuilder`在频繁修改过程中不会占用太多的内存空间,`String`
    
            为不可变,每一次要重新创建空间储存字符串。
    

    2.2.2 阅读jdk文档,查询StringBuilder的append(char[] str)方法功能是什么?试分析StringBuilder内部使用什么来存放字符?调用StringBuilder的append(char[] str)方法时,是如何实现添加字符的操作?

    2.3 字符串与字符串池

    2.3.1 尝试使用字符串池的概念解释如下程序段输出结果,并回答这段代码创建了几个字符串对象:

              `String str1 ="hi", str2="hi"; String str3 = new String(str1) System.out.println(str1==str2);`
    

              创建了三个字符串对象。
    

    2.3.2 重点:对基本类型我们可以使用比较两个值是否相等,对于引用类型(如String, Integer、数组等)为什么不能使用比较?应该怎样比较他们的值是否相等呢?

               对于基本类型`==`比较的是地址是不是相等,然而引用类型是内容相等,但地址并不相等。如果要比较他们
    
               的值应该使用`a.equals(b)`。
    

    2.4 Wrapper(包装类)

    2.4.1 Integer i = 100;//100是基本类型,i是引用类型,为什么可以将100赋值给i?Integer x = 100; int y = x+1;x++;这一串命令中包含了些什么操作?

              在程序运行是100会被自动装箱,包括了程序运行时的一些自动装箱,拆箱操作。
    

    2.4.2 Java为什么有了基本数据类型,还需要其包装类呢?包装类能给我们带来什么好处呢?

                -基本数据类型之间不能直接转换,得通过包装类来实现转换。
    
                -可以方便函数之间值得传递。
    
                -有些要用到Object的地方能够将基本数据类型进行转换。
    

    2.5 实验总结

    2.5.1 结对编程实践:使用结对编程的方式完成本周编程题目,即两个人同时合作完成实验题目(可1题也可多题,但最好是是两个人都没做过的题目)。推荐实施步骤:1.两个人坐在同一台电脑屏幕前判题,讨论、决定大概由谁先写。2. 1个人先编5分钟(自己商量多少分钟),同时另一个人观察对方编程或者查相关资料。3. 5分钟后,简单讨论后,换另外一个人继续编(请一定要换,另一个人如果无法接受应由第一个人讲解大概思路以方便其接受)。并完成如下作业:a.描述结对队友姓名、结对过程,提供非摆拍的两人在讨论、细化和编程时的结对照片。b.结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会(如是否有利于自己编程水平的提高、是否有利于开拓编程思路)。

                 合作对象:林裕恒
    
                 感受、体会:结对编程效果还是比一个人蒙头苦想要容易一点,毕竟两个人碰到困难两个大脑在思考,所以还是比较喜欢结对编程的
    
                 形式(但是我所理解的结对合作的方式是遇到问题可以和别人去讨论,并非要这种坐在一台电脑前,轮换着打代码)。对自己和伙伴的编程提高都有所帮助。
    

    2.5.2 PTA-1综合小测验

                 本题大致分为四个部分,fib、sort、search、getBirthDate,主要的还是取生日和对一串数进行排序这两个,取生日和第二题中的身份证验证差不多
    
                  排序的话就用到`Array.sort()`进行排序。
    

    2.5.3 PTA-3身份证排序。并回答:使用sort2方法进行排序可以对出生年月日进行升序排序,如果现在有需要对其进行降序排序,或者按照其中的出生月份排序,怎么解决呢?

                  大部分时间都花到这道题目上了,刚开始想接着老师的代码打,结果发现解决不了。最后上网查了代码,然后慢慢自己改才解决的。通过创建三个strs数组,
    
                  对于sort1主要是先将6-14位取出来,然后对取出来的这些字符串利用函数`Collections.sort();`进行排序;倘若是要对其进行降序排序,则将出生月份取出来并
    
                  将其转换位整型,在进行排序。
    

    2.5.3 PTA-4动态数组

                  最开始只是简单的把九九乘法表打印出来,并没有将后面那一串打印出来,不知道`Arrays.deepToString()`的用法,后面经过询问同学后才懂得。还有就是pta
    
                  中的格式问题,“%-7s”就可以解决“从第1个2开始到第二项`2*2=4首字母之间,总共有7个字符(包含空格,此例中包含2个空格)”这个问题。还有要注意的就是
    
                  最后那个后面不能有空格,我的处理方式如下图:
    

    2.5.4 (重点:小测题目)PTA-8 ArrayList入门。并回答:为什么有了数组还要使用ArrayList?

                       本题考查的是jdk中一些现存函数的使用,然后联系学到的知识对这些函数进行使用。ArrayList是为动态数组,占用内存少,而且更加方便功能齐全。
    

    2.5.6 (浮点数计算)

                  上课时老师提到过,浮点数之间不能直接相加减,应该用到BigDecimal。
    

    2.6 选做:公交卡里应该还有多少钱?请分析原因

                  公交卡中出现四千万余可能因为公交卡欠款,所以程序出现乱码。
    

    3.码云及PTA

    3.1 码云代码提交记录

    -在码云的项目中,依次选择“统计-Commits历史-设置时间段”,然后搜索并截图

    3.2 截图题集“Java基本语法”PTA提交列表

    3.3 使用老师发的jar程序统计每周的代码量

    周次 总代码量 新增代码量 总文件树 新增文件数
    2 424 424 9 9
  • 相关阅读:
    3372 选学霸
    3556 科技庄园
    1025 选菜
    UVA 437 The Tower of Babylon巴比伦塔
    3641 上帝选人
    tyvj P1175 机器人
    1692 子集和的目标值
    1689 建造高塔
    NOI2002 贪吃的九头龙
    NYOJ110 剑客决斗
  • 原文地址:https://www.cnblogs.com/xiaokai668/p/7566794.html
Copyright © 2011-2022 走看看