java 字符串 面试_Java字符串相关面试题

一、String类相关的面试题

String类型的面试是长久不衰老生常谈的一些经典问题,那么今天我们就来分析分析,看看它究竟有多奇葩?如果你要明白本次课的内容,那么前面的关于String .类我讲过的知识你要看完学完,我曾经说过我的课程的顺序是不能打乱的,因为他们是连贯的知识点。你可能听不懂,因为老师讲解的课程都是偏向深入。

1、String str= new String("abcd");实例化 了几个字符串对象?

45228c88c445bf605c13958809db39f5.png

2、String str= "a"+"b";产生几个对象?

af13fb4d74a7c41bd3924d3c71bc961e.png

3、String str = "a"+new String("b");产生几个对象?

13775400e990a500302a73eb9c5415db.png

f135037fcf84cb2becd00775dc1bcdf0.png

4、String str1=new String(" abc' );   String str2=new String("abc");-共创建了几个字符串对象?

86212fcb46ca4388d527ddd07843e502.png

这种题目在网上争论很大,其实上我们使用查看字节码指令的方式来论证是最有权威的。

5、new String("a")+new String("a");创建了几个对象?

ecc161aef3020e938e904ce158ef0dd2.png

1f544b6d0f4f14d56b9159fce1c2d30e.png

6、new String("a")+new String("b");创建了几个对象?

2cce1567889b9890effa3e6fd62e89f9.png

bbdbe658d33e95126d3b353c05c4961d.png

7、判断输出结果

28cd2adf425a68d7ed381422d5118a2f.png

当执行“String” s1=" abcd"; 的时候会在常量池中创建--个"abcd",

当执行“String s2="ab"+"cd";//两个字面量连接” 的时候会先将两个字符串常量连接直接生成“abcd”。

16a2c5e2c72ff304ff27306f28cd8c89.png

当多个字符串的引用相加的时候堆中开辟新的空间,通过我们的分析,发现了str4最终的地址是在堆中,而str1是在常量池中,所以二者的地址是不相等的。

总结:

1、字符串的相关面试题你要明白,不要在这种地方丢分

2、字符串在内存中的各种变化你要清楚,我之前的课程里面讲解很清楚了。

有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!

欢迎关注微信公众号:码邦主

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值