code snapshot

定义

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.迭代器的表示

注意对迭代对象的引用是不可变的, 是双线的

在这里插入图片描述


总结
  1. 不是对象直接表示,是对象用圈表示
  2. 不可变,用双线: 不可变对象是双圆圈, 不可变引用是双线箭头
  3. 可变对象变内容, 不可变对象变引用(地址)
posted @ 2019-06-23 17:58  lee3258  阅读(177)  评论(0编辑  收藏  举报