關於java字符串拼接時jvm的處理

在java語言中,字符串的拼接方式能夠是String c=」a」+」b」,也能夠是String a=」a」,String b=」b」,String c=a+b,兩種拼接方式是不同的,前者是在編譯期就能夠肯定的值,兩個字符串常量組成的也是字符串常量,它會在常量池裏面生成三個字符串常量,存在jvm的常量池裏,後者在編譯器沒法肯定,是在運行時才能肯定,保存在jvm的堆裏面,後者在拼接的時候,先在常量池裏面生成兩個字符串,在執行加號的時候,會從常量池中取出兩個常量,在堆中生成兩個字符串對象,而後再生成第三個字符串對象來保存兩個對象拼接後的值,因此後者一共是兩個常量,三個對象。java

相關文章
相關標籤/搜索