软件构造心得(二)

最近两堂课一共学习了静态和动态类型检查其中我做了以下总结:

1静态/动态类型检查

(Java是静态类型检查,在编译阶段进行检查,Java不进行动态类型检测)

静态类型检查:语法、类名/函数名、参数数目、参数类型、返回值类型

动态类型检查:非法的参数值、非法的返回值、越界、空指针

注意List<String>和List<Object>是在静态类型检测中报错。

课堂上老师带领我们做了几道例题,让我印象比较深刻。

2Mutable/Immutable

Java可进行自动垃圾回收。 Immutable好处:安全,但浪费空间。

*final特性: final 限定的是引用不变(如果mutable改变值不会报错),final类无法派生子类,final方法无法被子类重写。

使用Mutable可获得更好的性能,也适合多个模块间共享数据,但不够安全!

Date也是mutable类!避免使用!

可以使用java.time包中的其他immutable类型的类:LocalDateTime, Instant等

immutable拷贝时间 O(n2)

传参数尽量用immutable类型(保证参数不变性),如果传mutable参数可先进行defensive copying

必须通过类中的方法来改变类中的属性(防止信息泄露)

我认为这个是课程的重点,老师花了接近一节课的时间带领我们学习,这也是课程的难点,通过画图分析可以很好的解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值