注意結合的順序
double a = (double)2/3; // a = 0.6666…
Data是可變數據類型,LocalDataTime是不可變數據類型
對變量賦值是在改變變量的指向,指向不同的值.
改變可變變量的內容時,是在改變變量內部內容的引用.
於是有了改變變量引用和改變變量值的區別。
對於String是不可變類型,賦值時,付給賦給的是引用,而不是值。即改變引用,不改變值。
對於StringBuilder的append()操作是改變變量值。
而,被final修飾的是不可變引用。對於不可變類型而言,它所指向的引用不可變,那麼它所表示的值就不可變了;可變類型,即使指向的引用不可變,但是不影響其改變變量值。
同時,final關鍵字對不可變引用提供了靜態檢查的支持
Snapshot Diagram
原始數據類型
對象
對於可變類型對象,用單線框;對於不可變類型用雙線框
對於不可變引用,使用雙向箭頭
如,Person中的final id;
List<>
Set<>
Map<>
特別的,迭代器的snapshot