String str = true+"" ;与String str="true";的区别

kelly0924 2009-11-01 12:37:03
请问String str = true+"" ;与String str="true";有什么区别,
...全文
247 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutt1989 2009-11-02
  • 打赏
  • 举报
回复
学习
py330316117 2009-11-02
  • 打赏
  • 举报
回复
是散分贴子吗,不用解释,给1分
hikaru71 2009-11-02
  • 打赏
  • 举报
回复
String str = true+""会生成两个字符串对象,而String str="true"只是生成一个对象。

不过通常编译器会帮我们进行有限的优化,在频繁的类似操作时,最好用StringBulider,效率较高
huangqibing0626 2009-11-02
  • 打赏
  • 举报
回复
区别是引用变量str引用的不是相同的对象!
peng15653830_gmail 2009-11-02
  • 打赏
  • 举报
回复
mark
lsdb 2009-11-02
  • 打赏
  • 举报
回复
有区别,如果加号一边是字符串,那么加号两边将合成一个字符串。
String str="true";字符串赋值个字符串类型的str,并且这句话生成了2个对象
liumingwei2009 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 amdgaming 的回复:]
你的String str = true+""编译不过的
[/Quote]
能通过啊
麦穗 2009-11-02
  • 打赏
  • 举报
回复
没有什么区别~~!
amdgaming 2009-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 amdgaming 的回复:]
你的String str = true+""编译不过的
[/Quote]
我错了。
cweijiaweil 2009-11-01
  • 打赏
  • 举报
回复
只是书写方法不同。
String str = true+"" ;+:如果加号一边是字符串,那么加号两边将合成一个字符串。
String str="true";字符串赋值个字符串类型的str
amdgaming 2009-11-01
  • 打赏
  • 举报
回复
你的String str = true+""编译不过的
睡觉谁叫~~~ 2009-11-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bigbro001 的回复:]
String str = true+"" ;与String str="true";编译成字节码后,没有区别,
如果用javap -c反汇编字节码文件,可以看到String str = true+"";被换成了String str="true";
[/Quote]
我试过 这都是真的!!!!
chenxiancool 2009-11-01
  • 打赏
  • 举报
回复
8楼说的应该对吧
zl3450341 2009-11-01
  • 打赏
  • 举报
回复
String str = true+"" ;与String str="true";编译成字节码后,没有区别, 
如果用javap -c反汇编字节码文件,可以看到String str = true+"";被换成了String str="true";


学习了

还真没String str = true+"" ;这样写过
Sunny_kaka 2009-11-01
  • 打赏
  • 举报
回复
没区别..估计是页面js写多了这样写.
haojia0716 2009-11-01
  • 打赏
  • 举报
回复
常量在编译期就决定了
lz12366007 2009-11-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bigbro001 的回复:]
String str = true+"" ;与String str="true";编译成字节码后,没有区别,
如果用javap -c反汇编字节码文件,可以看到String str = true+"";被换成了String str="true";
[/Quote]

顶呱呱。。。。。
bigbro001 2009-11-01
  • 打赏
  • 举报
回复
String str = true+"" ;与String str="true";编译成字节码后,没有区别,
如果用javap -c反汇编字节码文件,可以看到String str = true+"";被换成了String str="true";
KOOK_OKKO 2009-11-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bao110908 的回复:]
如果是

boolean b = true;
String str = b + "";

这样的话就有区别了,因为变量之间的字符串连接会使用 StringBuilder 来进行操作。
[/Quote]

  • 打赏
  • 举报
回复
应该改成:

boolean b = true;
String str = String.valueOf(b);
加载更多回复(4)

62,614

社区成员

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

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