2020.03.18软件构造听课笔记

数据类型与类型检验:

基本数据类型:只有值没有ID、在栈中分配内存、代价低
对象数据类型:既有ID也有值、在堆中分配内存、代价昂贵

所有的类默认继承了Object
继承:一个子类可以拥有父类所有可见的方法

基本类型对应的对象类型(将基本类型包装为对象类型):Boolean、Integer、Short、Long、Character、Float、Double
通常是在定义容器类型的时候用到它们的对象类型,例如Set、List、map
一般情况下尽量避免使用其对象数据类型,以免降低性能

同样的操作名可以用于不同的数据类型(重载)

根据检查的时间点可以分为:静态检查、动态检查和无检查
静态检查:在编译阶段进行检查,在编译阶段、运行之前
动态检查:在程序进行中进行检查
动态/静态检查与动态/静态类型语言无关
好处:静态检查>动态检查>无检查

静态检查可以发现:语法错误、类名/函数名错误、参数数目错误、参数类型错误、返回值类型错误
动态检查可以发现:非法参数值、非法的返回值、越界、空指针

静态检查主要是检查类型,动态检查主要是针对特定值的

不变对象:一旦被创建,适中指向同一个值/引用
可变对象:拥有方法可以修改自己的值/引用

不可变类型的缺点:使用不可变类型,对其频繁修改会产生大量的临时拷贝(需要垃圾回收)
可变类型最少化拷贝,以提高效率
使用可变数据类型,可以获得更好的性能

可变数据类型有时会发生不易发现的错误,必要时可以使用防御式拷贝

可变对象用单线椭圆表示,不可变对象用双线椭圆表示

注意学习List,Set,Map的用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值