黑马程序员技术交流社区
标题:
求高手讲解一下String类
[打印本页]
作者:
李杰
时间:
2012-8-28 14:41
标题:
求高手讲解一下String类
看下面代码
String a=new String ("abc");
String b="abc";
System.out.println(a==b);
复制代码
为什么是false;不是内存已经存在“abc”了吗?
作者:
冯心程
时间:
2012-8-28 14:55
String a=new String ("abc"); abc在对象中
String b="abc"; 在String的池中
对象比当然是false 如果你这样
String a="abc", b="abc"; a==b 就是true
接着如果
String a=new String("abc");
String b=new String("abc");
a==b 就是flase 、、、 对象
a.equals(b) 就是true、、、、值
作者:
周兴华
时间:
2012-8-28 14:57
String a=new String ("abc");
//new String("abc")创建了一个对象,变量a指向它
String b="abc";
//变量b指向字符串池中的字符串对象“abc”
System.out.println(a==b);
//因为a和b指向不同的对象,故结果为false
作者:
黑马胡威
时间:
2012-8-28 15:48
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
上面是JDK API中的内容,也就是说字符串和字符数组的引用都代表一个地址楼主的引用中
String a=new String ("abc"); //指向一个地址0x0039
String b="abc";//指向另一个地址0x0040
a 和 b的值当然不同。
而且字符串是常量,不同与基本数据类型的常量定义。
作者:
黑马_许芸
时间:
2012-8-28 15:56
额,回答过一次这个问题。不过不小心把String Pool拼写错了。
http://bbs.itheima.com/forum.php ... mp;page=1#pid135707
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2