欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JVM针对String类型的优化

程序员文章站 2022-07-15 13:42:05
...
public class CountTest
{
	public static void main(String[] args)
	{
		String a = "abc";
		String b = a+"de";
		String c = "abcde";
		String d = "abc"+"de";
		System.out.println(b==c);
		System.out.println(d==c);
		System.out.println(b==d);
	}
}
结果:
false
true
false 

JVM针对String类型的优化上述分别是源码,和对class文件进行反汇编后内容。

由此可见,虚拟机在将.java编译成字节码的时候进行了两个优化。

1.从

String d = "abc"+"de";

以及对应的反汇编的代码,可见虚拟机针对这种直接字符串进行了优化,直接变成一个String对象

2.从

String a = "abc";
		String b = a+"de";
以及对应的反汇编的代码,可以看出在这种情况下,虚拟机引入了线程不安全的StringBuilder进行字符串的叠加,避免字符串对象过多
相关标签: String JVM 优化