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操作对象的一种基本方式。
网友评论