equals 和 ==

来源:互联网 发布:ubuntu 16.04 升级 编辑:程序博客网 时间:2024/06/14 06:32

1.相等性的比较(==)

1)   对于原生数据类型来说,比较的是左右两边的值是否相等。

2)   对于引用类型说,比较左右两边的引用是否指向同一个对象,或者说邹游两边的引用地址是否相同。

2.java.lang.Object类。Java.lang包

3.API(Application Programming Interface)应用编程接口。

4.当打印引用时,实际上回打印出所指对象的toString()方法方法的返回值,因为每个类都直接或间接的继承自Objet,而Object类中定义了toString()方法,因此每个类都有toString()这个方法。

5. equals()方法,该方法定义在Object类当中,因此Java 中的每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用equals()方法的引用与传进来的引用是否一致,即这两个引用是否指向的是同一个对象。对于Object类的equals()方法来说,它等价于==

6.  对于String 类的equals()方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。

7.  对于String对象的相等性判断来说,请使用equals()方法,而不要使用==

8.  String是常量,其对象一旦创建完毕就无法改变。当使用+拼接字符串时,会生成新的String对象,而不是向原有的String 对象追加内容。

. String Pool (字符串池)

. String s =“aaa”; (采用字面值方式赋值)

9. 1) 查找String Pool中是否存在“aaa”这个对象,如果不存在,则在String Pool 中创建一个“aaa”对象,然后将String           Pool  中的这个“aaa”对象的地址返回来,赋给引用变量s,这样s会指向String Pool 中的这个“aaa”字符串对象

10.    2) 如果存在,则不创建任何对象,直接将String Pool中的这个“aaa”对象地址返回来,赋给s引用。

11.     String s = new String(“aaa”);

1) 首先在String Pool 中查找有没有“aaa”这个字符串对象,如果有,则不在String Pool中再去创建“aaa”这个对象了,直接在堆中(heap)中创建一个“aaa”字符串对象,然后将堆中的这个“aaa”对象的地址返回来,赋给s引用,导致s 指向了堆中创建的这个“aaa”字符串对象。

2) 如果没有,则首先在String Pool中创建一个“aaa  对象,然后再在堆中(heap)创建一个”aaa 对象,然后将堆中的这个”aaa 对象的地址返回来,赋给s引用,导致s指向了堆中所创建的这个”aaa 对象。



string 是一个final类型的,是不可以改变的,所以如果要动态的添加字符串 使用StringBuffer。

0 0
原创粉丝点击