zoukankan      html  css  js  c++  java
  • 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. 可变对象变内容, 不可变对象变引用(地址)
  • 相关阅读:
    storm概述
    Mac下python路径
    Frida的安装
    Mac上安装多版本python的手工处理方式
    idea下编写shell脚本并执行
    CTF PWN专用虚拟机
    二叉树输入与存储的问题
    逆向推荐博客(持续更新)
    Kali 爬坑日记
    官宣:从windos服务器迁移到linux
  • 原文地址:https://www.cnblogs.com/lee3258/p/11997786.html
Copyright © 2011-2022 走看看