定义
code Snapshot: 一种图, 反映了运行某一时刻的各变量或对象的状态以及变化情况; 其中箭头代表引用, 由变量名指向引用地址.
基本表示方法
1.基本数据类型的表示
箭头直接指向基本数据类型的值
2.对象数据类型的表示
箭头先指向一个圆圈, 圆圈中是对象成员变量的情况. 注意, 可变对象用单圆圈, 不可变类型用双圆圈.
这是可变的对象, 单圆圈
这是不可变的对象, 双圆圈
3.不可变类型的变化
不可变类型只能改变引用,不能改变原来地址中的值
string 为不可变类型, 先令String s =“a” 再令s =“ab"的过程中改变了地址的值, 并未改变原来的"a”
4.可变数据类型的变化
可变数据类型变化时改变地址中的值, 不改变引用.
5.不可变引用的表示
不可变引用是指final修饰的变量, 这些变量的引用(即箭头), 要用双线表示.
如 final int id = 9208484; 其表示如下
一些常见集合类的表示
1.list的表示
注意有序号
2.set的表示
注意没有序号
3.map的表示
注意键值对是一起的
4.迭代器的表示
注意对迭代对象的引用是不可变的, 是双线的
总结
- 不是对象直接表示,是对象用圈表示
- 不可变,用双线: 不可变对象是双圆圈, 不可变引用是双线箭头
- 可变对象变内容, 不可变对象变引用(地址)