软件构造——代码快照图

代码快照图属于软件多维视图中的运行时视图、时刻视图、代码视图。
快照图表示程序运行时的内部状态——它的堆栈(正在进行的方法及其本地变量)和堆(当前存在的对象)。
代码快照图中最简单的表示就是那些程序中的变量。只需要用一个箭头指向一个值即可。如下图所示:

int i = 3

在这里插入图片描述
**稍微复杂一些的是对象表示,需要用一个圈圈住,圆圈里面写上类名。代码快照图中的不可变类型需要用双圈表示,可变类型用单圈(或者虚线?MIT课件里写的是虚线)表示****例如:

String s = “hello”;

在这里插入图片描述
用final修饰的变量,表示不可变的引用。在代码快照图中用双线表示。例如:

final int n = 5;

在这里插入图片描述
以上,是代码快照图的基本组成,对于复杂对象,可以将这些表示进行组合。例如:

Point pt = new Point(5, -3);

在这里插入图片描述
此外,代码快照图是非常灵活的。关注点不同可以有不通的画法。例如,对于String s = “hello”;如果关注值为"hello",则用第一中表示,第二种表示则全面显示了信息,如果只关注其类型是String,则可以使用第三种表示。
在这里插入图片描述
此外,代码快照图提供了一种可视化的方法来帮助我们分辨引用更改和值更改。

//因为String是不可变类型,这是改引用
String s = "a";
s = s + "b";

在这里插入图片描述

//这个是改值
StringBuilder sb = new StringBuilder("a");
sb.append("b");

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值