请教关于String类型变量定义问题

zhouhao0107 2006-08-01 09:39:33
String str = ""; 与 String str = null;
在定义变量时用上面的哪句话来定义,程序的性能更高一点,为什么?
谢谢高手指点
...全文
375 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
ABCatai 2006-09-07
  • 打赏
  • 举报
回复
其实并不推荐String a; 这样定义,根据java的原意,最好在能够进行正确初始化的时候才定义引用,特殊情况下也要初始化成null。

---------------------------------------------
正解!
spiritsl 2006-08-04
  • 打赏
  • 举报
回复
其实并不推荐String a; 这样定义,根据java的原意,最好在能够进行正确初始化的时候才定义引用,特殊情况下也要初始化成null。
catastrophe 2006-08-04
  • 打赏
  • 举报
回复
mark!学习了
尹崇 2006-08-03
  • 打赏
  • 举报
回复
NULL
lyws4010 2006-08-03
  • 打赏
  • 举报
回复
肯定是后者嘛
whysdhr 2006-08-03
  • 打赏
  • 举报
回复
String s = ""; 表示你已经在内存空间为字符串s分配了空间,
因为("")是一个值,在内存中有地址.
String s = null; 表示你只是声明了一个字符串对象,它没有任何引用
对象,所以是null,这样可以在以后动态的引用赋值,
减少内存的前期消耗.
以上意见仅供参考,OVER.
bygones2001 2006-08-03
  • 打赏
  • 举报
回复
hou zhe
Hello_java2 2006-08-03
  • 打赏
  • 举报
回复
String str;应该还是String str=null;性能高
lanse0225 2006-08-03
  • 打赏
  • 举报
回复
String其实挺有意思的,你声明一个String s = "aaa";的时候会分配2个空间,再声明一个String c = "aaa";的时候,两个声明共占3份空间,当然了,这要算上引用占用的2份,如果做String z=s+a的话,会再增加一个引用z,和一个字符串“aaaaaa”.........,效率是很低的
lanse0225 2006-08-03
  • 打赏
  • 举报
回复
String s = "";会被分配在data区中,而null不会,其实StringBuffer要好些,如果可能的话,还是尽量多用这个,不然在做循环 s+="^&*%^&^*^";的时候会很占资源
wangzhongjie 2006-08-03
  • 打赏
  • 举报
回复
String a = "aaa";这样一句话开辟了几个内存空间呀?
是两个还是一个,就是说是创建一个堆然后将s引用给他,可是这个s也是内存中的一个堆吗
boyu_song 2006-08-03
  • 打赏
  • 举报
回复
""在内存中开辟空间
wsguang 2006-08-03
  • 打赏
  • 举报
回复
后者

因为String是一个类,它产生的对象应该符合对象为空的标准null
aiwo99 2006-08-03
  • 打赏
  • 举报
回复
后者
cyeahpro 2006-08-03
  • 打赏
  • 举报
回复
null
hbwhwang 2006-08-02
  • 打赏
  • 举报
回复
后者,前者可能会创建对象
OpenCloseD 2006-08-02
  • 打赏
  • 举报
回复
后者
candy824 2006-08-02
  • 打赏
  • 举报
回复
又学到了一点,呵呵^^
zjx8342 2006-08-02
  • 打赏
  • 举报
回复
up
Siela 2006-08-02
  • 打赏
  • 举报
回复
^_^
同楼上的
有时候只声明一个引用也许比较好
加载更多回复(6)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧