本帖最后由 cat73 于 2016-7-16 16:36 编辑
本回复仅针对 Oracle JavaSE 8u92,并没在其他 Java 版本测试过,因此实际结果可能不一致。
实际上这个题没法讨论。。。
Java 在这种字符串拼接的时候有隐式优化。。。
这种字符串拼接会自动替换为 StringBuilder (如果有不确定的东西时)。。。
但实际上,这句代码里所有的东西都是编译时就确定好的,因此答案 javap 一下就知道了。。
- Code:
- // String s="a"+"b"+"c"+"d";
- 0: ldc #2 // String abcd
- 2: astore_1
复制代码 答案是 0 个对象。。。
ldc。。。
直接读的常量池。。。
|