问个简单的问题 String xx = "abc";String yy = "a"+"bc";System.out.println(xx == yy);这样输出的是true,那么equals对于String还有意义吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有的 常量池是java对String的优化 不要太去在意就行 String yy = "a"+"bc"; //编译器做了优化,这句话的意思就死是String yy = "abc"; 那么equals对于String还有意义吗?当然有意义了,你那个只是碰巧输出true而已 碰巧输出 TRUE? 求 反例 对于String对象,==和equals的讨论没完没了,有什么实际意义呢? 自解一下吧,是对象和常量优化的问题。java把String 做了常量优化,也就是运算时把它做了处理,以下代码输出就说明问题了String a = new String ("a");String b = new String ("a");System.out.println(a==b); String xx = "aabc"; String aa = "aa"; String bc = "bc"; String yy; System.out.println(System.identityHashCode(xx)); System.out.println(System.identityHashCode(aa)); System.out.println(System.identityHashCode(bc)); yy = aa + bc; System.out.println(System.identityHashCode(yy)); yy = "aa" + "bc"; System.out.println(System.identityHashCode(yy));16417451107720314576877126774761641745hashCode对对象内部地址进行了整数的转化 MARK!MARK!MARK!MARK!MARK!MARK!MARK!MARK!MARK! java初学者问个关于线程的问题,望高手来解答。 有关Sun认证方面的书籍 for循环打印点阵图 关于随机函数的问题,真诚感谢 按钮(button 或 jbutton任一种类型都可) 背景颜色或按钮上标签字符颜色如何变化?? 关于如何处理时间的问题 提问一个关于 eclipse的问题 这个数组倒序输出为什么会有错误? 关于jdbc的问题! 请问RMI中远程函数的参数和返回值可以是类吗? JSplitPane LeftComponent 大小 FTP如何解析dir list等命令返回的数据
当然有意义了,你那个只是碰巧输出true而已
碰巧输出 TRUE?
求 反例
java把String 做了常量优化,也就是运算时把它做了处理,以下代码输出就说明问题了
String a = new String ("a");
String b = new String ("a");
System.out.println(a==b);
String xx = "aabc";
String aa = "aa";
String bc = "bc";
String yy;
System.out.println(System.identityHashCode(xx));
System.out.println(System.identityHashCode(aa));
System.out.println(System.identityHashCode(bc));
yy = aa + bc;
System.out.println(System.identityHashCode(yy));
yy = "aa" + "bc";
System.out.println(System.identityHashCode(yy));1641745
11077203
14576877
12677476
1641745
hashCode对对象内部地址进行了整数的转化