• 雨课堂知识点总结(八)


    3.1(B)

    1,关于mutable和immutable的说法正确的是:

    所有的简单数据类型和所有相对应的封装类(Integer,Double,Boolean等)都是immutable的

    所有数组都是mutable的

    使用immutable类型可以降低程序蕴含bug的风险,但其时空性能相对较差

    2,针对final关键字,说法正确的是:

    A final class declaration means it cannot be inherited

    A final variable means it always contains the same value/reference but cannot be changed

    A final method means it cannot be overridden by subclasses

    3.String a = "a";

    String c = a;

    a += "b";

    c += "c";

    StringBuilder b = new StringBuilder(a);

    StringBuilder d = b;

    b.append("b");

    d.append("c");

    假设执行之后未进行任何垃圾回收,此时内存里共有3个String对象和1个StringBuilder对象

    此时c的取值是ac,d的取值是abbc

    4,关于immutable和mutable data type的说法,正确的是:

    使用不可变类型,对其频繁修改会产生大量的临时拷贝

    可变类型可直接修改其值而无需太多拷贝,从而提高效率

    不可变数据类型更安全,因为其值无法修改

    使用可变类型做全局变量,可在不同模块之间高效率的进行共享数据读写

    5,final List<String> l1 = new ArrayList<>();

    List <String> l2 = new ArrayList<>();

    1.l1.add("a");

    2.l1.set(0,"b");

    3.l1 = l2;

    4.l2 = l1;

    上面无法通过static type checking的是3

    因为l1为final

    6.List <String> k = new ArrayList<>();

    k.add("lab1 ends");

    Iterator it  = k.iterator();

    System.out .println(it.hasNext());

    it.next();

    System.out.println(it.hasNext());

    k.remove(0);

    System.out.println(it.hasNext());

    输出的结果为true false true

    第三个在迭代器迭代过程中用remove删除的话,以后随便输出信息,所以为true

    7.List<String> t = new ArrayList<>();

    t.addAll(Arrays.asList("a","b"));

    Iterator<String> i = t.itertor();

    while(i.hasNext())

      if(i.next()=="a")

        i.remove();

    期望结果是t中只包含"b"

    下面说法正确的是:

    正常执行,结果与期望一致!

  • 相关阅读:
    UNIX 高手的另外 10 个习惯
    python中的cls到底指的是什么
    一篇文章搞懂Python装饰器所有用法
    sysbench 压测
    python面向对象进阶
    python 学生表
    搞懂蓝绿发布、灰度发布和滚动发布
    数据库之视图、索引
    Java内存模型(JMM)以及 垃圾回收机制 小结
    Java线程唤醒与阻塞
  • 原文地址:https://www.cnblogs.com/HIT-ryp/p/10564751.html
Copyright © 2020-2023  润新知