版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
注意结合的顺序
double a = (double)2/3; // a = 0.6666…
Data是可变数据类型,LocalDataTime是不可变数据类型
对变量赋值是在改变变量的指向,指向不同的值.
改变可变变量的内容时,是在改变变量内部内容的引用.
于是有了改变变量引用和改变变量值的区别。
对于String是不可变类型,赋值时,付给赋给的是引用,而不是值。即改变引用,不改变值。
对于StringBuilder的append()操作是改变变量值。
而,被final修饰的是不可变引用。对于不可变类型而言,它所指向的引用不可变,那么它所表示的值就不可变了;可变类型,即使指向的引用不可变,但是不影响其改变变量值。
同时,final关键字对不可变引用提供了静态检查的支持
Snapshot Diagram
原始数据类型
对象
对于可变类型对象,用单线框;对于不可变类型用双线框
对于不可变引用,使用双向箭头
如,Person中的final id;
List<>
Set<>
Map<>
特别的,迭代器的snapshot