java 虛擬機 內存

關於問題:

  • String 字符串相加 不等於 直接創建的字符串的問題
		String a = "hello ";
        String b = a + "world";
        String c = "hello " + "world";

其中 b 不等於c, 因爲 常量區分爲運行時常量區 ,而運行時常量池是放在方法區中的,對於編譯能確定的直接放在運行時常量池中的,而運行時常量池是放在方法區中的,a 在編譯時不確定 所以是通過 StringBuilder的toString()的方法,來new 在堆中的 所以內存地址不一致。

當字符串確定時,在編譯時 就放在常量池中了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章