zoukankan      html  css  js  c++  java
  • 学号 20175313《Java程序设计》 第七周学习总结

    一、教材学习内容总结

    第八章主要内容

    • 了解String类

      • 常量对象:常量池中的数据在程序运行期间再也不允许改变。

      • String对象:用户无法输出String对象的引用。

        • 例如:
            String s = new String(“i am a student”);
            System.out.pintln(s);//输出对象的实体
          

        可以用s.toString()来返回对象引用的字符串 表示。

        输出:i am a student

      • 字符串的并置运算:参与并置运算的String对象,只要有一个是变量,那么java就会在动态区存放所得到的新的String对象的实体和引用。如果是两个常量进行并置运算,那么得到的仍然是常量。

    • 掌握String类的常用方法

      • 字符串与基本数据的相互转化

        • (字符串转基本数据类型)例子: Integer类调用类方法public static int parseInt(String s)实现将数字字符转化为数字。
        • (基本数据类型转字符串)例子:
          String类调用类方法public static String valueOf(byte n)将数值转化为String对象,或者调用toString()方法获得该对象的字符串表示。
      • 字符串与字符数组的相互转换

        • (字符串转字符字符数组)例子:
          public char[] toCharArray()将一个字符串全部转化为字符数组,或者使用getChars
        • (字符数组转字符串):直接用简单的初始化字符串的方式即可。
    • 学会正则表达式的使用

      • 什么是正则表达式
      • 字符串的替换
      • 字符序列的分解
    • 熟悉String类和StringBuffer类的不同

      • String对象的字符序列是不可修改的(实体不可变)。
      • StringBuffer类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符序列。(实体可变)
    • 学会使用StringTokenizer、Scanner类,并清楚二者使用时的区别

      • StringTokenizer类把分解出的单词全都存放在StringTokenizer对象的实体中,获取单词速度快,但是占用内存多。
      • Scanner类不把单词放到Scanner对象的实体中,而是仅仅存放获取单词的分隔标记,获取单词速度相对较慢,但是节省内存空间。
    • 了解Date类、Calendar类和format方法的使用

    • 熟悉Math类、BigInteger类和Random类的应用条件

      • Math类:random方法生成的随机数是double型的并且取值范围是[0.0,1.0)。
      • BigInteger类:当程序中需要处理特别大的整数时就可以使用该类。
      • Random类:虽然也是生成随机数,但是用起来比Math类灵活。

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

    • 问题1:
      对于如下代码,下列哪个叙述是正确的?
      A、程序编译出现错误
      B、程序标注的【代码】的输出结果是bird
      C、程序标注的【代码】的输出结果是fly
      D、程序标注的【代码】的输出结果是null
    public class E {
        public static void main(String[] args) {
            String one = "bird";
            String two = one;
             one = "fly";
            System.out.println(two);
        }
    }
    
    • 正确答案:B

    • 理解情况:String对象one和two都是变量,所以String two = one;相当于String two = String new("bird");,因此one的引用与two的引用是不同的,改变one的值并不会影响到two的值。

    • 运行结果截图:

    输入图片说明

    • 问题2:请说出E类中标注的【代码】的输出结果。
    public class ex8_3 {
        public static void main(String[] args) {
            String str = "苹果";
            modify(str);
            System.out.println(str);
        }
        public static void modify(String s){
            s = s +"好吃";
        }
    }
    
    • 输出结果为:“苹果”,不是“苹果好吃”
    • 运行结果截图:

    输入图片说明

    • 理解情况:题目中向方法modify传的是str的一个复制品并不是他的引用,因此在方法中改变str的值并不会影响主方法中str的值,与C中的传值、传地址类似。
    • 如果想得到“苹果好吃”,将代码修改如下:
    public class ex8_3 {
        public static void main(String[] args) {
            String str = "苹果";
            System.out.println(modify(str));
        }
        public static String modify(String s){
            s = s +"好吃";
            return s;
        }
    }
    
    • 运行结果截图:

    输入图片说明

    三、代码托管

    (https://gitee.com/xiannvyeye/test)

    输入图片说明
    输入图片说明

    四、心得体会

    • 有压力才有动力。结对加上团队加上各种实验,我还能把Java看完我觉得自己很不容易。
    • 不知道为什么大家看起来都学习的很轻松,看书都看的好快,可能是自己书读的少了吧,所以阅读能力有点差。希望今后自己能有时间多看看书。

    五、学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第七周 540/2634 2/14 20/104
    • 计划学习时间:23小时

    • 实际学习时间:20小时

    • 改进情况:

      • 多看书,提高阅读速度、理解能力。
      • 合理安排时间,充分利用碎片时间。

    六、参考资料

  • 相关阅读:
    在 Queue 中 poll()和 remove()有什么区别?
    jdk 8 HashMap源码解读
    java 中,没有任何方法和成员变量的接口
    ArrayList、LinkedList、Vector、Array
    StringBuilder和StringBuffer
    Collection
    jdk代理和cglib代理源代码之我见
    多 线程
    Spring的@Enable*注解的工作原理
    redis 学习
  • 原文地址:https://www.cnblogs.com/xiannvyeye/p/10702370.html
Copyright © 2011-2022 走看看