Object 与 String细节

来源:互联网 发布:唱简谱软件 编辑:程序博客网 时间:2024/05/01 09:14

一、==


1.基本类型== ,表示字面值是否相等


2.引用类型==,也表示值是否相等,但是表示的是 “对象的地址”,也就是左右两侧是否是一个对象。


二、Java.lang.Object类的toString()方法


1.当打印引用时,实际上会打印引用所指对象的toString方法。


2.推荐所有的class都override toString方法。


3.系统默认返回的 类的全称 + "@" + 地址的16进制表示形式。


4.Object类的equals方法,判断的是调用equals方法的引用与传进来的引用是否一致,即这两个引用是否指向同一个对象。对于Object类的equals方法来说,它等价于==.

    public boolean equals(Object obj) {        return (this == obj);    }


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


6.只要有new就会产生新的对象。


三、字符串


1.String类 是final的,是不能被继承的。


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


3. String s4 = "aaa";

查找String Pool中是否存在"aaa"这个对象,如果不存在:在String Pool中创建一个"aaa"对象,然后将String Pool中的这个"aaa"对象的地址返回赋给引用变量。如果存在,则不创建任何对象,直接将String Pool中的"aaa"对象地址返回给引用。

String str3 = "bbb";String str4 = "bbb";System.out.println(str3 == str4);// 返回trueString str5 = new String("ccc");String str6 = "ccc";System.out.println(str5 == str6);// 返回false

4.String是常量,

String 是一个常量,创建完之后就不能改了。

StringBuffer是一个变量,可以继续在同一个对象上进行追加修改。

四、只要有new就会产生新的对象,== 表示左右两侧是否是一个对象

String str = new String("aaa");String str2 = new String("aaa");System.out.println(str == str2);


五、字符串 与 变量相加,产生新的字符串

1.题目一                hello  != "Hel" + lo

String hello = "Hello";String lo = "lo";System.out.println((hello == ("Hel" + "lo")) + "");//显示trueSystem.out.println((hello == ("Hel" + lo)) + "");//显示false,特别注意

2.题目二                s12 != (s1 + s2)

String s12 = "hello";String s1 = "hel";String s2 = "lo";System.out.println(s == (s1 + s2));// 返回false



六、String intern()返回与字符串对象相同的String Pool中的地址。










0 0
原创粉丝点击