一起读《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操作对象的一种基本方式。

该知识点是自己以前相对模糊和觉得需要记录一下的知识,然而书中知识点远不如此,推荐自己看书;需要电子版的可私信我

猜你喜欢

转载自blog.csdn.net/szzzgyn/article/details/84853649