Thinking in Java 第三章

来源:互联网 发布:linux tcp ip 转发 编辑:程序博客网 时间:2024/06/04 20:09

1、别名问题:

      Cat a = new Cat(10);

      Cat b = new Cat(15);

      a = b;

      执行完成时,引用a与引用b在堆栈中存储在不同空间,但指向堆中的同一个对象,操作任意一个引用修改对象的值,另一个引用也会受到影响。

      原来a所对应的对象被自动回收。

      若想a,b脱离影响,可用clone的方法进行拷贝。(深拷贝?浅拷贝?)

2、random()

      括号中不带参数,会用当前时间作为种子生成随机数,种子相同时产生的随机数数列相同。

3、equals()

      第一种情况:

      Cat a = new Cat(10);

      Cat b = new Cat(10);

      a.equals(b)  false

      a == b           false

      第二种情况:

      Integer a = new Integer(10);

      Integer b = new Integer(10);

      a.equals(b)  true

      a == b           false

      equals比较的是两个引用是否指向同一个对象。对于第一种情况,是两个Cat对象,因此返回false。对于第二种情况,Java对于基本的一些类型重写了equals方法,只比较对象的属性值是否相等。因此,我们也可以利用重写equals方法来达到相同的目的。

4、移位:带符号右移 >>   不带符号右移 >>>

0 0
原创粉丝点击