知识点:

  1. 静态类型检测/动态类型检测
  2. 可变性/不可变性
  3. Snapshot diagram

静态类型检测/动态类型检测

静态类型检测:

  • 语法错误
  • 类名/函数名错误
  • 参数数目错误
  • 参数类型错误
  • 返回值类型错误

动态类型错误:

  • 非法的参数值
  • 非法的返回值
  • 越界
  • 空指针

动态类型检测>静态
//动态类型检测比静态类型检测更加严格,

静态类型:关于类型
编译阶段的检测,主要是代码语法方面的错误,代码的正确性

动态类型:关于
运行时的报错,代码正确的前提下的用法错误,程序的正确性

考试重点:静态类型与动态类型检测的对比区分。

可变性/不可变性——程序的安全性

限定词:final
final的类无法被继承,
final的方法无法被重写
final的变量的值无法被改变 (应用)

不可变类型设计:不能用任何方法改变类中属性的值!

  • 当需要对变量进行频繁修改时,不可变类型需要进行大量的拷贝,使用可变类型能够提高效率。
  • 多个变量指向同一个数据时,其中一个变量的对数据值进行修改时,使用不可变类型不会影响到另一个变量。如果使用可变类型 会造成十分严重且难以察觉的错误!!!

考试重点:将可变的类改为不可变的类!

Snapshot diagram——程序运行时的内部状态

三维视图:run time/code/moment
值在栈上:(基本类型)
软件构造期末复习-第三章
值在堆上:(对象类型)
软件构造期末复习-第三章

  • 引用保存在栈中*
  • 不可变对象 —使用双线椭圆
  • 不可变引用—双线箭头

相关文章: