黑马程序员技术交流社区
标题:
关于字符串的问题??
[打印本页]
作者:
小蚊子
时间:
2013-12-14 23:54
标题:
关于字符串的问题??
String s = new String("abc"); String s1 = "abc"; 为什么s==s1是false 地址值不都是指向abc的么
作者:
jing迪
时间:
2013-12-15 00:00
String s = new String("abc"); String s1 = "abc"; 为什么s==s1是false 地址值不都是指向abc的么
s是引用型变量,指向的是一个String对象 第一句话建立了2个对象 指向对内存中得String对象 堆内存中得String拿到的是"abc"这个字符串对象的地址值 ,而第二句话直接指向常量池中得"abc" 指向不一样 引用型变量==号是比较的地址值所以是false 希望对你有所帮助
作者:
唐侠君
时间:
2013-12-15 00:42
本帖最后由 唐侠君 于 2013-12-15 00:59 编辑
s==s1这种写法返回的结果比较的是地址值;你如果返回的结果比较的是String类中的参数内容就为true了。
String s = new String("abc"); 创建了一个String对象s,并输入参数为“abc”;
String s1 = "abc"; 其实应该理解为String s1= new String("abc"); 所以创建了两个对象s 和 s1,堆内存中就对应两个不同的地址值,所以结果为false。
作者:
丑男先生。
时间:
2013-12-15 08:27
String和StringBuffer他们都可以存储和操作字符串,即包含多个字符的字符串数据。
String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。
作者:
ζ丶凡σ
时间:
2013-12-15 17:42
come on ............
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2