您的位置:首页 > 编程语言 > Java开发

java编译器对字符串+运算的优化导致的有趣现象

2012-04-23 20:29 274 查看
以前写了个字符串是否来自池的文章

只说明了有的字符串来自池,有的是在堆上新建,但是没有深究,只从现象去推测了,今天我们来看看究竟发生了什么

下图(源码和字节码)很清晰地看到s3实际上是新建了一个StringBuilder,然后append了def,然后再toString的,难怪会不同了

 


再来看下图,s1和s2定义为final之后,字节码简洁了很多,s3的值明确为abcdef且来自常量池

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编译器 java 优化