黑马程序员技术交流社区
标题:
关于String对象的问题
[打印本页]
作者:
王银龙
时间:
2013-7-29 21:56
标题:
关于String对象的问题
本帖最后由 杜光 于 2013-7-30 11:06 编辑
String str = “abc”;与 String str2 = new String("abc")有什么分别,老毕的没怎么看懂,
还有就是空串String str3 = “”;与 String str4 = null;又有什么分别呢?
作者:
手心里的温柔
时间:
2013-7-29 22:23
String str = “abc”; 有一个对象
String str2 = new String("abc") 有两个对象 参考API String类构造方法public String(String original) 初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;
换句话说,新创建的字符串是该参数字符串的副本。
String str3 = “”; 指向一个对象
String str4 = null; 指向为空
希望能帮到你 共同学习哈
作者:
jialihong
时间:
2013-7-29 22:27
用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。
而另一个是先在栈中创建一个对String类的对象引用变量str2,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令str2指向”abc”,如果已经有”abc” 则直接令str2指向“abc”。
作者:
陈春
时间:
2013-7-29 23:09
new出来的是存在于堆内存中,而一般的是存在栈里面的。另外,字符串默认赋值的是null。希望可以帮到你!!
作者:
zhouchao
时间:
2013-7-30 00:04
String str = “abc”;与 String str2 = new String("abc")
s1在内存中有一个对象
s2在内存中有两个对象
我的理解是
String str = "abc"等同与int x = 4;一样 str是一个变量名 String是变量类型 对象的话只有“abc”一个对象
String str2 = new String("abc") 等同于Person p = new Person("abc") p是一个对象 "abc" 也是一个对象 所以s2在内存中有2个对象
str3是指向一个引用 栈内存中开辟了空间建立了对象 对象的地址值指向了堆内存中的str3
str4是没有指向引用
作者:
张强1
时间:
2013-7-30 00:22
String str = “abc”; 有一个对象str
String str2 = new String("abc") 有两个对象str2和new string("abc")
String str3 = “”; 指向一个对象
String str4 = null; 指向为空
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2