String stri="hfeigehgiergh".intern();
String st=“hfeigehgiergh”;
System.out.println(st==stri);
为什么是true 它的原理是什么
java 入池问题怎么解决!!!!!!!!!!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 编程爱好者熊浪 2017-04-02 05:45关注
String s="hfeigehgiergh";
String stri="hfeigehgiergh".intern();
String st="hfeigehgiergh";
System.out.println(s==st);
System.out.println(st==stri);
你先确定s==st是true吗,string跟普通的引用类型有点不同,它的值不是放在堆里面的,而是放在常量池里面的,当str在常量池里面存储了一份值之后,第二次有个字符串赋值,它会先到常量池里面找下有没有相同的值,有就不会添加,会直接使用这个值,没有就新添加一个,因此2个字符串其实是指向同一个值,所以是true,你.intern()这个方法就是告诉字符串先去常量池里面找下有没有这个值,其实加不加都会先去找一遍。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 永磁型步进电机PID算法
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥200 uniapp长期运行卡死问题解决
- ¥15 latex怎么处理论文引理引用参考文献
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?