Java8.0 字符串常量池
2021-07-26 本文已影响0人
arrow_zh
1、String对象和String字符串对比
String s1 = "hello";
String s2 = new String("world");
通过编译class文件,执行javap -v xxx.class 可以查看常量池如下
![](https://img.haomeiwen.com/i3175946/01e8d888d5acf8f2.png)
2、String对象和String字符串相加对比
String s1 = "hello" + "world";
String s2 = new String("good" + "man");
通过编译class文件,执行javap -v xxx.class 可以查看常量池如下,可以看出在编译成class阶段java已经把字符串优化成了一个。
![](https://img.haomeiwen.com/i3175946/d4e5168ea0e89075.png)
3、String对象和String字符串混合相加对比
String s1 = "hello" + new String(" boy");
通过编译class文件,执行javap -v xxx.class 可以查看常量池如下,
![](https://img.haomeiwen.com/i3175946/a2a78b8b1311e004.png)