黑马程序员技术交流社区

标题: 给大家出个小题玩玩哈 [打印本页]

作者: yuchifeifan    时间: 2016-1-31 20:06
标题: 给大家出个小题玩玩哈
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);   //你们造结果吗  ----》求大家给点分啊
}
作者: yuchifeifan    时间: 2016-1-31 20:07
卧槽 大神你好流弊啊
作者: yuchifeifan    时间: 2016-1-31 20:09
一般般了 赫赫赫
作者: jdissx01    时间: 2016-1-31 20:21
正确答案是true true true

作者: ChiCaoMa    时间: 2016-1-31 22:20
三个都是true。。
作者: yuchifeifan    时间: 2016-2-5 19:33
打赏点技术分啊大家
作者: yuchifeifan    时间: 2016-2-5 19:36
唉呀 终于有人给分了 好人那
作者: D.TF    时间: 2016-2-6 10:36
三个全是对的,ture
作者: 锅先森    时间: 2016-2-6 12:22
答案大家已经给出了,具体原因应该是这样:
Java中的String类为不可变字符串,也是String类中没有提供修改字符串的方法,string字符串是存放在公共的储存池中的,字符串变量如同“指针”指向存储池中的相应位置。
楼主的两个方法,substring文档解释:“该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。”valueOf文档解释:返回参数的字符串表示形式,两种方法其实都是在做“指针”操作,都是指向储存池中的同一个java,当然地址也是一样的。所以s1==s2==s3
作者: zxydream    时间: 2016-2-6 18:25
学习了~~~
作者: renkuo023    时间: 2016-2-8 16:17
true
true
true





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2