A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© yuchifeifan 中级黑马   /  2016-1-31 20:06  /  899 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args){
String s1="java";
String s2=s1.valueOf(s1);
String s3=s1.substring(0,4);   //猜猜会不会报错
System.out.println(s1==s2);
System.out.println(s1==s3);
System.out.println(s2==s3);   //你们造结果吗  ----》求大家给点分啊
}

评分

参与人数 1黑马币 +2 收起 理由
洋葱头头 + 2

查看全部评分

12 个回复

倒序浏览
卧槽 大神你好流弊啊
回复 使用道具 举报
一般般了 赫赫赫
回复 使用道具 举报
正确答案是true true true
回复 使用道具 举报
三个都是true。。
回复 使用道具 举报
打赏点技术分啊大家
回复 使用道具 举报
唉呀 终于有人给分了 好人那
回复 使用道具 举报
D.TF 中级黑马 2016-2-6 10:36:03
8#
三个全是对的,ture
回复 使用道具 举报
答案大家已经给出了,具体原因应该是这样:
Java中的String类为不可变字符串,也是String类中没有提供修改字符串的方法,string字符串是存放在公共的储存池中的,字符串变量如同“指针”指向存储池中的相应位置。
楼主的两个方法,substring文档解释:“该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。”valueOf文档解释:返回参数的字符串表示形式,两种方法其实都是在做“指针”操作,都是指向储存池中的同一个java,当然地址也是一样的。所以s1==s2==s3
回复 使用道具 举报 2 0
学习了~~~
回复 使用道具 举报
true
true
true
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马