一起讀《Thinking in Java》知識點一

一切都是對象

1、Java中高精度數據類型

BigInteger 支持任意精度的整數。也就是說,在運算中,可以準確地表示任何大小的整數值,而不會丟失任何信息。

BigDecimal 支持任意精度的浮點數,例如,可以用它進行精確的貨幣計算。

2、別名現象

Class Tank{

int leb=vel;

}

public class A{

public static void main(String[] args){

Tank t1 = new Tank();

Tank t2 = new Tank();

t1.level = 9;

t2.level = 47;

print("1:t1.level:"+t1.level+";t2.level:"+t2.level

)

t1=t2;

print("2:t1.level:"+t1.level+";t2.level:"+t2.level)

t1.level = 27;

print("3:t1.level"+t1.level+";t2.level:"+t2.level);

}

}

1:t1.level:9;t2.level:47

2:t1.level:47;t2.level:47

3:t1.level:27;t2.level:27

  Tank類非常簡單,他的兩個實例(t1和t2)實在main()裏創建的。對每個Tank類對象的level域都賦予了一個不同的值,然後,將t2賦給t1,接着又修改了t1。在許多編程語言中,我們可能會期望t1和t2總是相互獨立的。但由於賦值操作的是一個對象的引用,所以修改t1的同時也改變了t2!這是由於t1和t2包含的是相同的引用,他們指向相同的對象。(原本t1包含的對對象的引用,是指向一個值爲9的對象。在對t1賦值的時候,這個引用被覆蓋了,也就是丟失了;而那個不在被引用的對象會由“垃圾回收器”自動清理。)

  這種特殊的現象通常稱作“別名現象”,是Java操作對象的一種基本方式。

 

 

該知識點是自己以前相對模糊和覺得需要記錄一下的知識,然而書中知識點遠不如此,推薦自己看書;需要電子版的可私信我

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章