黑马程序员技术交流社区
标题:
有关String类的内容!
[打印本页]
作者:
电饭煲
时间:
2014-5-17 14:32
标题:
有关String类的内容!
为了创建一个字符串“this is a program”哪个方法好??原因!
String s1="this is a program";
String s1=new String("this is a program");
作者:
别小乐
时间:
2014-5-17 15:03
String a = new String("aa"),代表在堆内存中,创建了一个字符串对象,变量a指向该对象,而该对象又指向在常量池中的字符串常量。
而String a = "aa"代表直接由变量a指向常量池中的字符串,省去了中间的堆内存中的对象,因为new对象时,都会在堆中创建对象。
这就像如果有:
String s1 = "hello";
String s2 = "hello";
那么
System.out.println(s1==s2);
结果为true,因为他们的地址值是一致的,都指向常量池中的字符串常量。
而
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1==s2);
结果则是false,因为他们都在堆中建立了对象,而对象之间的地址值不同
具体说哪个好,我觉得在单单说创建字符串而言,应该都差不多吧。不知道这样解释怎么样?
作者:
向前看向前走
时间:
2014-5-17 15:15
这两一样,如果推荐,我还是觉得第一个好,这样子我们使用比第二个方便
作者:
海世山盟
时间:
2014-5-17 19:08
第一种情况,内存有一个实例,(字符串),第二种情况内存有两个实例 一个是字符串 一个是new String();因此第二种是比较浪费空间的。
作者:
张志民
时间:
2014-5-17 19:15
第一种方法好
作者:
______Shadow丶
时间:
2014-5-17 22:05
学习学习啦,顶下
作者:
苏-L-w
时间:
2014-7-1 21:07
学习啦!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2