黑马程序员技术交流社区
标题:
String类型问题
[打印本页]
作者:
专职黑马100年
时间:
2014-11-23 22:48
标题:
String类型问题
String s =new String(" ")
String s ="";本质上的区别在哪
作者:
依米阳光
时间:
2014-11-23 23:37
在网上找的答案分享一下:
存放地方的区别:
第一个s是一个字符串常量,它存放在内存栈区。
第二个s是一个对象,它是存放在堆中的。
用法的区别:
第二个是个对象,所以可以用String类中的所有方法,而第一个不是对象,它不可以操作String类中的方法
作者:
夜海
时间:
2014-11-24 00:56
第一个两个对象
第二个以个对象
s 都是变量
作者:
zhangyangLengen
时间:
2014-11-24 09:29
第一个:是存在于堆内存中
第二个:是直接存在常量池中,先在常量池,看看有没有这个常量,如果有,就直接指向这个常量池中的值。
作者:
mmppp
时间:
2014-11-24 14:53
第一个 new 一个变量,“”一个变量。
第二个,就一个变量。。。
作者:
与梦逆风而行
时间:
2014-11-24 17:59
依米阳光 发表于 2014-11-23 23:37
在网上找的答案分享一下:
存放地方的区别:
第一个s是一个字符串常量,它存放在内存栈区。
额 为啥 感觉你好像说反了
作者:
william_J
时间:
2014-11-24 21:58
第一个是俩个对象,在堆内存中有一个,常量池有一个对象,总共俩个
第二个是一个对象,就是常量池中有一个对象!
作者:
sunyeyu
时间:
2014-11-24 22:22
第一个其实 创建了 两个对象 一个是在常量池中 一个是new 出来的string 对象在堆内存中 两者单向链接 ,然后再指向s。
第二个只是创建了一个对象在常量池中 开辟一个空间 存储“ ”然后地址直接指向s。
作者:
huangkj
时间:
2014-11-24 22:32
第一个在堆内存开辟了空间new了对象,new的对象指向常量池,相当于有2个对象。 第二个是s引用直接指向常量池
作者:
迷失的小Z
时间:
2014-11-24 22:34
一个俩对象 一个一个对象……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2