Java string类学习 2

博客提及2019独角兽企业招聘Python工程师标准,介绍了代码中“==”和equals方法比较对象的区别,指出String类重写equals方法比较内容。还给出笔试题目“new String(\abc\)创建对象数量”的答案,以及空指针异常解决方法。

  先看代码:

String str1="hello";
        String str2="hello";
        String str3=new String("hello");
        String str4=new String("hello");
        
        System.out.println("str1==str2?  "+(str1==str2));   //true
        System.out.println("str2==str3?  "+(str2==str3));   //false
        System.out.println("str3==str4?  "+(str3==str4));   //false
        System.out.println("str3.equals(str4)?  "+str3.equals(str4));   // true   ???
  • "=="用于比较引用数据类型数据的时候比较的是两个对象的内存地址;
  • equals方法默认情况下比较也是两个对象的内存地址,但是字符串对equals方法进行了重写;
  • 是String类重写了Object的equals方法,比较的是两个字符串对象 的内容是否一致。

1648a23c3f72e9b386c7b996466ca895767.jpg

查询源代码:

8a5029a05d815d3787a0eae30f88fb4a46b.jpg    15074288b6740ef94fffee27c65d0e3fb6a.jpg


 笔试题目:new String("abc")创建了几个对象?
  两个对象, 一个对象是 位于字符串常量池中,一个对象是位于堆内存中。

空指针异常:

d72febce39ff5ba8a0387267773de59a4e6.jpg

解决方法:

f2455fc6d7e478984d3b63c4d458f9c02f4.jpg

 

 

 

 

转载于:https://my.oschina.net/hellation/blog/3046777

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值