相等性的比较:
(1)对于原生数据类型来说,比较左右两边的值是否相等。
(2)对于原生数据类型来说,比较左右两边的引用是否指向统一对象,或者说左右两边的引用地址是否相同。
Java.lang.object类。Java.lang包在使用的时候无需显式导入,编译时由编译器自动帮助我们导入。
API(Application Programming Interface),应用编程接口。
当打印引用时,实际上会打印出引用所指向对象的toString()方法的返回值,因为每个类都直接或者间接继承自Object,而Object类中定义了toString(),因此每个类都有toString()方法。
关于进制的表示:16进制,逢16进一,16进制的数字包括:0-9,A,B,C,D,E,F。
String类源代码深析
equals()方法,该方法定义在object类当中,因此Java中的每个类都具有该方法。对于object类的equals()方法来说,它是判断调用equals()方法的引用与传进来的引用是否一致,即这两个引用是否指向同一个对象。对于Object类的equals()方法来说,它等价于==。
对于String类的equals()方法来说,它是判断当前的字符串与传进来的字符串的内容是否一致。
对于String对象的相等性判断来说,请使用equals方法,而不要使用==。
String类陷阱深度剖析
String是常量,其对象一旦建立完毕就无法改变。当使用+拼接字符串时,会生成新的String对象,而不是原有的String对象追加内容。
String Pool(字符串池)。
String s="aaa";(采用字面值赋值)
(1)查找String Pool是否存在"aaa"这个对象,如果不存在,则在String Pool中创建一个"aaa"对象,然后将String Pool中的这个"aaa"对象的地址返回来,赋值给变量s,这样s会指向String Pool中的这个"aaa"字符串对象。
(2)如果存在,则不创建任何对象,直接将String Pool中的这个"aaa"对象地址返回来,赋值s引用。
String s=new String("aaa");
(1)首先在String Pool中查找有没有"aaa"这个字符对象,如果有,则不在String Pool中再去String Pool中再去创建"aaa"这个对象,然后将堆中的这个"aaa"对象的地址返回来,赋值给s引用,导致s指向了堆中创建的这个"aaa"字符串对象。
网友评论