标签:String 对象 StringBuilder 构造 Snapshot 引用 可变 软件 final
Snapshot图(代码快照图)
这里首先回顾一下软件构造最初提出过一个“三维度八视图”的概念,(此概念是软件构造和后期维护过程中的一个概念,讨论的是如何构造的问题)三维度分别是时刻和阶段维度,代码和构件维度,编译和运行维度,而八视图指的就是2 x 2 x 2 = 8了,这里的Snapshot图描绘的是八维度中的时刻、代码、运行维度
- 数据类型:
- 不可变的基本数据类型:
- 举例:int, long, char, string , …
- 不可变的对象类型:
- 举例:Integer, Long , Character , String , …
- 可变的对象类型:
- 举例:Date , StringBuilder , List , …
- 对象:
-
不可变的对象:
- 要求:该对象的数据类型为不可变类型
- 举例:String str = new String(“abc”);中的对象String “abc”就是不可变对象
- 画法:双线椭圆内写对象,如上述String “abc”
-
可变的对象:
- 要求:该对象的数据类型为可变类型
- 举例:StringBuilder strbuilder = new StringBuilder(“a”);中的对象StringBuilder “a”就是可变对象
- 画法:单线椭圆写对象,如上述StringBuilder “a”
- 引用:
- 不可变的引用:
- 要求:该引用被final修饰过则为不可变引用
- 举例:final String str = new String(“abc”);中的str就是不可变引用;final int n = 1;中的n就是不可变引用; final StringBuilder strbuilder = new StringBuilder(“a”);中的strbuilder也是不可变引用,只看有没有用final修饰即可
- 画法:双线箭头指出(此处的id为不可变引用)
- 可变的引用:
- 要求:该引用没有被final修饰则为可变引用
- 举例:String str = new String(“abc”);中的str就是可变引用; int n = 1;中的n就是可变引用;StringBuilder strbuilder = new StringBuilder(“a”);中的strbuilder也是可变引用
- 画法:单箭头指出(此处s为可变引用)
- 容器
可以理解为是由一堆引用构成的,不同的ADT有不同的画法,这里直接给出常见ADT的Snapshot图框架,需要注意的是如果其中的对象被final修饰同样需要遵循之前的画法使用双线
- List
- Set
- Map
标签:String,对象,StringBuilder,构造,Snapshot,引用,可变,软件,final 来源: https://www.cnblogs.com/dcyyy/p/16353852.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。