软件构造第三章复习

基本数据类型,对象数据类型

在这里插入图片描述
java 中可以将基本数据类型封装为对象,虽然可以自动进行转换,但是会降低效率,所以尽量少用这种方式。

静态类型检查和动态类型检查

静态类型:在编译时需要知道所有变量的类型,编译器可以推断所有表达式的类型。
动态类型:在运行时进行检查。

静态类型检查: 针对类型,也就是与变量特定值无关的错误,具体检查内容有函数调用形式、函数名称。
动态类型检查:针对由特定值引起的错误,具体检查内容有非法参数、超出范围的索引值、调用空对象的方法。

可变和不可变

改变一个变量:对变量赋值是在改变变量的指向,指向不同的值。
改变变量的值:改变可变变量的内容时,是在改变变量内部内容的引用。

在程序的编写过程中,为了保证程序的安全性,常常用不可变性,其中不变数据类型创建完后,值不可修改;不变引用,一旦指定引用位置,不可再次指定。

保持不可变的一类重要方法是使用final关键字:Final关键字对不可变引用提供了静态检查的支持。利用final来声明方法的参数和局部变量,有利于代码理解和编译器的静态检查。

可变和不可变的区别:当仅有一个引用时,二者的使用区别不大,但当有多个引用时,二者的区别很大。如下图:在这里插入图片描述
左边为不可变类型,右边为可变类型,如果在编写程序过程中使用了不可变类型,可能在无意中修改了某个可变类型的值,这种改变并不容易发现,可能会造成后续的错误。所以虽然可变类型使用起来非常方便,为了代码的安全我们也应该减少它的使用。

Snapshot diagram

Primitive values:
在这里插入图片描述
Object values:
在这里插入图片描述
不可变类型使用双圆圈表示:
在这里插入图片描述
可变类型使用单圆圈:
在这里插入图片描述
final通常表示为一个双箭头:
在这里插入图片描述
使用双箭头后,id的值不再允许改变。

注:指向可变值的不可变引用指引用不可变,值可变。
指向不可变值的可变引用指值不可变,引用可变。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值