2
A
回答
2
第二個問題的答案是肯定的,你在Eclipse的調試器中看到的「id」唯一標識一個對象,所以其中的變化意味着創建了一個新對象。因此,例如:
Integer i = 55;
Integer j = new Integer(55);
Integer k = Integer.valueOf(55);
這裏我和k會有相同的id,因爲它們指的是同一個對象; j會有所不同。
由於對象在內存中移動,這些對象之一的內存地址並不是真正有用的信息。所有你能知道的是,如果我== K,他們是同一個對象。 (所以在這裏,我== K,但我!= J)。
6
爲什麼你需要在Java中的任何對象的內存地址?你只能說Integer
實例在堆中。你找不到確切的地址。
第二個問題:是的,Integer
對象是不可變的,所以當Integer
類型的變量的值發生改變時,它意味着它指向Integer
的不同實例。然而,這並不一定意味着新實例是創建的。 new Integer(42)
總是會創建一個新實例,而Integer.valueOf(42)
將在每次調用時創建相同的實例。
0
除非你有一個離JVM開發團隊非常近的人,否則你不能找出引用變量中存儲了什麼類型的數據/地址。我們需要的只是訪問駐留在該引用中的對象並對其進行操作/執行。
我不確定你的問題的第二部分。另外,我無法確認ID(在調試器中)是否指Java堆內存位置。
相關問題
- 1. 初始化變量並同時指定存儲地址:是否有可能?
- 2. 是否有可能將所有流量轉發到IP地址?
- 3. 是否有可能在Java中批量初始化常規變量?
- 4. 是否有可能有2個變量指向內存中的相同地址
- 5. 是否有可能使用全局變量在Java的JSP中
- 6. 如何在Java中的linux界面過程中找到原始MAC地址?
- 7. 是否有可能在變量中更改變量的值?
- 8. 是否有可能在構造函數中聲明變量[Java]
- 9. 是否有可能在Java中聲明一個1位變量?
- 10. 是否可以在java中獲得一個變量堆的地址?
- 11. C:是否可以通過知道地址找到變量的數據類型
- 12. java中的ip地址是否有效
- 13. 是否有可能從本地主機到外部地址
- 14. 是否有可能在apache tomcat中操縱原始http-stream?
- 15. 在Java中,可以將非原始類型視爲常量嗎?
- 16. 本地變量的原因可能尚未初始化?
- 17. 是否有可能檢測到Java中是否有類可用?
- 18. 找到鏈接原始地址,而不是從谷歌,Facebook等
- 19. 通過Java中的值分配非原始變量
- 20. 是否有可能在java servlet中準確確定客戶端的IP地址
- 21. 是否有可能獲得雙倍內存中的原始位?
- 22. 是否有可能吞下原始輸入中的密鑰?
- 23. 是否有可能在Java
- 24. 在Objective C中,是否有可能將變量「連接」到另一個變量?
- 25. 是否有可能在modelsim中創建IP地址基數?
- 26. 是否有可能在Windows中寫入任何內存地址
- 27. 是否有可能找出變量名稱,指向的指針?
- 28. 是否有可能在MongoDB中進行原子批量更新?
- 29. 是否有可能在java中的父類中訪問子類的變量?
- 30. 是否有可能引用變量
什麼是身份證號碼? – Adrian 2012-01-06 21:28:27