Snapshot diagram:以code-level,run-time,moment的视角看软件构造

1.    Snapshot diagrams:

       用于描述程序运行时内部状态的快照图。

       其作用:

        (1)便于程序员之间的交流

        (2)便于刻画各类变量随时间变化的过程

        (3)便于解释设计思路

2.    Snapshot diagrams的具体画法:

    (1)基本类型的值:通过常数来表示,其箭头为变量或object域对其的引用。

        

    (2)对象类型的值:用一个以其类型作为标志的圆圈进行表示,其内部箭头指向他们的

        值:(其内部的数据类型也可以加上其类型,来显示更多的信息。

        

    (3)不可变类型的对象,用双线椭圆进行表示:

        例如过程:

        

        的snapshot图:

        

        而可变类型StringBuilder的过程:

        

        的snapshot图:

        

    (4)不可变的引用:即带final关键字的引用:

            如:final int n=5;

            在snapshot中,其用双线箭头表示:

            例如:

            

            注:引用是不可变的,但指向的值却可以是可变的

                   可变的引用,也可指向不可变的值,要区分值和引用。

举例:以下代码的snapshot 图:

    

    第一次输出时的snapshot图:

    

    第二次输出时的snapshot图:

    

    不可到达的对象,将有JVM的垃圾回收机制回收。





        

猜你喜欢

转载自blog.csdn.net/qq_38969070/article/details/80711706