关于java字符串拼接时jvm的处理

在java语言中,字符串的拼接方式能够是String c=”a”+”b”,也能够是String a=”a”,String b=”b”,String c=a+b,两种拼接方式是不同的,前者是在编译期就能够肯定的值,两个字符串常量组成的也是字符串常量,它会在常量池里面生成三个字符串常量,存在jvm的常量池里,后者在编译器没法肯定,是在运行时才能肯定,保存在jvm的堆里面,后者在拼接的时候,先在常量池里面生成两个字符串,在执行加号的时候,会从常量池中取出两个常量,在堆中生成两个字符串对象,而后再生成第三个字符串对象来保存两个对象拼接后的值,因此后者一共是两个常量,三个对象。java

相关文章
相关标签/搜索