1.java中的数据类型
基本数据类型:诸如int,char这一类,它们都是immutable
对象数据类型:诸如Integer、String这一类,它们有些是immutable,有些是mutable。
2.类型检查:
静态类型检查和动态类型检查
3.final的作用:
(1)final类无法派生子类
(2)final变量无法改变值或引用
(3)final方法无法被子类override
4.可变对象的优点:
最小化拷贝以及节约空间。
解决immutable对象存在的潜在危险:防御性拷贝
5.集合的snapshot图:

6.ADT
(1)操作:
Creators构造器、Producers生产器、Obsevers观察器、Mutators变值器
(2)设计ADT:
设计一个好的ADT需要靠开发者的经验来设计它的操作的spec,设计一个ADT要遵循下面三个原则:(1)设计简洁一致的操作(2)要足以支持client所需要的对数据的所有操作,且用操作的难度要低(3)要么抽象要么具体,不要混合——要么针对抽象设计,要么针对具体应用的设计。
(3)表示独立性:
设计一个好的ADT需要靠开发者的经验来设计它的操作的spec,设计一个ADT要遵循下面三个原则:(1)设计简洁一致的操作(2)要足以支持client所需要的对数据的所有操作,且用操作的难度要低(3)要么抽象要么具体,不要混合——要么针对抽象设计,要么针对具体应用的设计。
(4)AF、RI、Safety from rep exposure
在代码中用注释的形式记录AF(如何解释每个R值)和RI(rep中哪些数据是有效的)。
在代码中用注释记录表示泄露的安全声明,证明代码并未对外泄露其内部表示。比如传入和传出都使用了防御式拷贝。
本文探讨了Java中的基本数据类型和对象数据类型,强调了它们的不可变性(immutable)与可变性(mutable)的区别。同时,介绍了静态类型检查与动态类型检查的概念。final关键字在类、变量和方法中的应用,用于防止继承、修改和覆盖。文章还讨论了可变对象在节省资源和防御性拷贝方面的优点,并概述了集合的快照图。此外,深入解析了抽象数据类型(ADT)的设计原则,包括操作定义、表示独立性和安全性。最后,提到了代码中的表示法和安全性注解,以确保不暴露内部表示。
1676

被折叠的 条评论
为什么被折叠?



