欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据类型与类型检验复习概要

程序员文章站 2022-04-10 09:55:46
Java是静态类型检测,在编译时进行类型检测,在运行时不进行类型检测。动态类型检测(针对具体的值)强于静态类型检测(针对类型)。final类无法派生子类;final变量无法改变值/引用;final方法无法被子类重写。......
  1. Java是静态类型检测,在编译时进行类型检测,在运行时不进行类型检测。动态类型检测(针对具体的值)强于静态类型检测(针对类型)。
  2. final类无法派生子类;final变量无法改变值/引用;final方法无法被子类重写。
  3. Snapshot diagram:描述对象在内存中的分布情况。(Run-time、Moment、Code Snapshot)
    基本类型的值(存储在栈中,基本类型不存储变量名)
    数据类型与类型检验复习概要
    对象类型的值(对象的变量名存储在栈中,对象及其属性存储在堆中)
    数据类型与类型检验复习概要
    不可变对象:用双线椭圆
    数据类型与类型检验复习概要
    可变对象:用单线椭圆
    数据类型与类型检验复习概要
    不可变的引用(final修饰):用双线箭头
    数据类型与类型检验复习概要
  4. 规约中没有说要对输入的变量做改变,就一定不能改变这些输入的变量。
  5. 规约变强:前置条件更弱(输入变多),后置条件更强(输出更少、更具体),规约图中所占面积更小。
    数据类型与类型检验复习概要
  6. 写好规约:内聚,Spec描述的功能应单一、简单、易理解;信息丰富,不能让客户端产生理解的歧义。在规约里使用抽象类型,可以给方法的实现体与客户端更大的*度。
  7. 抽象数据型:所有属性均为private。
  8. 操作类型:
    (1) 构造器(Creators):其它类型->当前类型
    (2) 生产器(Producers):当前类型->另一个当前类型
    (3) 观察器(Observers):当前类型->其它类型
    (4) 变值器(Mutators):改变对象属性的方法(void方法必然为此类,此类方法不一定是void方法)。
  9. 不变性(Invariant):对属性的约束。表示独立性和避免表示暴露是最重要的Invariant。
  10. AF和RI
    表示空间和抽象空间:
    数据类型与类型检验复习概要
    抽象函数AF(Abstraction Function):R和A之间映射关系的函数,即如何去解释R中的每一个值为A中的每一个值(满射,未必单射,未必双射)。
    表示不变性RI(Rep Invariant):某个具体的“表示”是否是“合法的”
    注意:immutable是从抽象空间的角度看的。
  11. 一定关于AF, RI, and Safety from Rep Exposure的典型规约:
    数据类型与类型检验复习概要
  12. 多态:特殊多态(方法名多态,即方法名相同,参数不同),参数多态(如泛型),子类型多态
  13. 针对重写:编译阶段根据参数类型来决定一个方法能否执行,运行阶段根据参数实际指向的对象来决定具体调用哪一个方法(父类的还是哪一个子类的)。
  14. 由于泛型擦除,Java中不允许使用泛型数组。如:
    数据类型与类型检验复习概要
  15. 从AF和Observer角度判相等:
    数据类型与类型检验复习概要
    分别从AF和Observer角度看,以下哪些是相等的:
    数据类型与类型检验复习概要
    从AF角度看,1、4相等;
    从Observer角度看,1、3、4相等。
  16. 观察等价性:看起来一样,即Observer方法结果一样(如集合类判相等)。下面是一个出错的情况:
    数据类型与类型检验复习概要
    行为等价性:调用对象的任何方法都展示出一致的结果,对于mutable的对象行为等价性就指这两个对象是同一个对象。(mutable对象建议使用此方法,即不需要重写equals方法,直接继承即可)。
    对于Immutable的对象,观察等价性和行为等价性是一样的
  17. Java中,-128~127的Integer对象只有一个。
    例:
    (1) 数据类型与类型检验复习概要
    例子中输出true
    当值不在-128~127之间时,输出false。
    (2)
    数据类型与类型检验复习概要
    左边false,右边true。

本文地址:https://blog.csdn.net/qq_45110312/article/details/107235466