软构学习笔记(11)--期末复习4-8章(根据老师复习提纲整理)

ch4 基本数据类型

静态类型语言:所有变量的类型在编译时已知,编译器可以推导表达式类型,可以在编译阶段进行类型检查

动态类型语言:变量类型在编译时未知或不需要知道,在运行阶段进行类型检查

有些问题静态检查和动态检查都无法检测出来,如整数除法(截断整数)、整数溢出、浮点数的特殊类型:

NaN,POSITIVE_INFINITY, NEGATIVE_INFINITY等

这个答案是不是第三个是整数除法截断不检查出错误,第4个是整数除零动态检查出错,第5个是浮点除零得inf检查不出错但是返回错误答案

 什么是不可变
当数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。如String。

每个String的变量只能指向一个不可变的对象,如果需要将对象进行改变,就需要将变量指向新的改变之后的对象,最终产生两块内存空间,分别用来存储新旧两个对象。

这种数据类型一旦被创建,其值不能改变;引用类型一旦确定其指向的对象,不能再给变其指向其他对象。

fina类无法派生自己的子类
final变量无法改变值/引用
final方法无法被子类重写

当数据类型的对应变量的值发生了改变,而它对应的内存地址不发生改变,对于这种数据类型,就称
可变数据类型。如StringBuilder。
每个String Builder的变量可以指向一个可变的对象,如果需要将对象进行改变,则直接在当前变量指
向的内存空间进行修改即可,最终还是只有一块内存空间。
对于可变对象,它可以拥有变值器(mutator),对自己的引用/值进行修改而不改变内存位置。

尽量不用mutable 参数

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值