软件构造期末复习02 数据类型与类型检验

一、原始类型(primitives)
  • 包括:int, long, byte, short, char,
    float, double, boolean
  • 除去这8种数据类型,其他(包括class,数组)都是引用(reference)类型
  • java中,int类型的1和boolean类型的true之间不能互相替换
二、静态检查
  • 静态检查仅仅检查类型,不检查值
三、immutable和mutable
1. 改变变量与改变变量的值
  • 改变一个变量:改变这个变量指向的地址
  • 改变一个变量的值:改变这个变量指向的地址的内容
2. immutable数据类型
  • 不变数据类型:一旦被创建,其值不能改变
3. final关键字(immutable)
  • final作用于primitive上,则这个变量相当于常量
  • final作用于reference上,则这个reference不能再指向其他内容
  • 例如:
    final StringBuilder s = new StringBuilder("hello");
    StringBuilder t = new StringBuilder("hi");
    s = t;

最后一行会报错。因为,尽管StringBuilder是可变的,但是因为final关键字,s所指向的地址不能再变为其他的StringBuilder

4. List< L >

List< L >中存储的是L的地址的拷贝,例如:

    String s1 = new String("abc");
    List<String> list = new ArrayList<>();
    list.add(s1);
    s1 = s1.concat("d");
    System.out.println(list.get(0));   //输出 abc
    String s2 = s1.concat("e");
    list.set(0, s2);
    System.out.println(list.get(0));   //输出abcde
五、迭代器
  • 使用迭代器删除某个元素,例如:
Iterator iter = subjects.iterator();
while (iter.hasNext()) {
    String subject = iter.next();
    if (subject.startsWith ("6.")) {
        iter.remove();
    }
}
六、用immutable修饰Collections
  • List、Map等都是mutable的,它的内部元素可以改变
  • 可以将mutable的Collections修饰为immutable,例如:
    List<Integer> list = new ArrayList<>();
    list.add(1);
    List<Integer> immutable_list = Collections.unmodifiableList(list);
    immutable_list.add(2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值