下面两句是等效的。
注意:字符串 是一个对象,所有双引号内的都是一个对象。而且字符串一旦初始化成功了就不能再变,它是一个常量。
下图中“abc”对象内容并没变而是s1指向变了。内存中的abc是不会变的
下面讨论:
前一个是false可以理解,因为这是两个对象。但后面正常object原码中equals比较的是两个地址值,而这里竟然是true???
这是因为,String 类复写了Object类中的equals方法。该方法用于判断两字符串是否相同。
s1和s2有什么区别?
s1在内存中有一个对象,s2在内存中有两个对象。
【字符串中常用方法】
【==】
第二个true的原因是:字符串是一个常量,既然已经有了,就不会再开空间从常量池中再造一个一样的出来,直接引用就好。
注意区别:字符串有长度,但它是个Int类型的方法,数组的长度是属性。
2.判断
boolean startWith()
boolean endWith()
boolean isEmpty()
boolean contains()
compareTo方法:
160-163没看,是字符串的一些练习。