Object 与 String细节

一、==


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);// 返回true

String 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")) + "");//显示true
		System.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值