是聲明/初始化基元與創建新對象相同嗎?從我知道當我們創建原語時,我們也爲它們創建包裝類。即時通訊在Java btw實現。聲明/初始化基元等於創建新對象
4
A
回答
5
沒有,分配的原始值不不創建任何對象。
什麼你可能被提及的是,原始值可以自動裝箱到相應的包裝,當他們在需要引用類型(又名「對象」)的上下文中使用:
int i = 13; // this line does not create an object
Integer i2 = i; // at this line 13 is auto-boxed into an Integer object
char c = 'x'; // again: no object created:
List<Character> l = new ArrayList<Character>();
l.add(c); // c is auto-boxed into a Character object
而且,我會盡力來形容聲明之間的區別和初始化:
int i; // an int-variable is declared
int j = 0; // an int-variable is declared and initialized
i = 1; // an int-variable is assigned a value, this is *not* initialization
一個變量被「申報」首次創建(當它即指定類型和名稱的變化iable)。它在聲明期間被賦值爲時被初始化。
0
編號基元不是java中的對象。
3
不,聲明和初始化一個基本變量不是創建一個對象。我們來看一個帶有兩個整數值的類 - 一個使用包裝類型,另一個不使用。
public class Foo
{
private int primitive = 10;
private Integer wrapper = new Integer(10);
}
的primitive
變量的值只是數字10的wrapper
變量的值是一個參考到Integer
對象又包含數字10因此的Foo
一個實例將請保留primitive
中的號碼以及wrapper
中的參考號。
There are Java中所有基元類型的包裝類,但不會自動使用它們。
2
創建原語不是也爲它們創建包裝類。
至於你的原始問題:聲明/初始化一個原語將在堆棧上創建它,而聲明一個對象將分配一個變量來保存對一個對象的引用。初始化對象將在堆上分配它。
1
相關問題
- 1. Java - 對象聲明和初始化
- 2. 陣基元或對象初始化
- 3. 類創建對象初始化技巧
- 4. 創建(任何)對象初始化
- 5. Vb.net聲明和初始化
- 6. 初始化在聲明
- 7. c聲明和初始化
- 8. 非忙等待的對象初始化
- 9. 在C++初始化之前聲明一個對象
- 10. 對象在聲明上已經初始化了嗎?
- 11. 如何在聲明時間初始化成員對象?
- 12. 初始化和聲明對象和方法
- 13. 在MATLAB中聲明和初始化對象
- 14. 創建JavaScript對象,使用對象初始化
- 15. 如何在初始化對象後自動創建對象?
- 16. 創建對象和初始化的對象 - 差異
- 17. 對象初始化
- 18. 對象初始化
- 19. 初始化對象
- 20. 初始化對象
- 21. 如何聲明對象,而不是創建新對象?
- 22. 初始化靜態final變量聲明與初始化在Application.OnCreate()
- 23. 變量初始化並聲明後可能尚未初始化
- 24. 初始化父對象後初始化相關的對象
- 25. 創建並初始化單元陣列
- 26. c中的對象重新初始化#
- 27. 對象初始化沒有「新」C++
- 28. Chartfx新圖表對象未初始化?
- 29. 在新對象中初始化模擬
- 30. 重新初始化一個Ruby對象