是聲明/初始化基元與創建新對象相同嗎?從我知道當我們創建原語時,我們也爲它們創建包裝類。即時通訊在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. 基元/對象聲明,默認初始化值
- 2. Java初始化/對象聲明
- 3. Java - 對象聲明和初始化
- 4. 陣基元或對象初始化
- 5. 構造基於對象初始化
- 6. PhpActiveRecord:創建初始化對象
- 7. 類創建對象初始化技巧
- 8. c聲明和初始化
- 9. Vb.net聲明和初始化
- 10. 初始化在聲明
- 11. 非忙等待的對象初始化
- 12. C++使用新的創建與初始化對象數組
- 13. 使用變量創建/初始化新對象
- 14. 在C++初始化之前聲明一個對象
- 15. C++/Qt如何聲明和初始化全局數組對象
- 16. 聲明和初始化類範圍內的靜態對象
- 17. 初始化私有對象在聲明或構造函數,C#
- 18. 如何在聲明時間初始化成員對象?
- 19. 在MATLAB中聲明和初始化對象
- 20. Scope的VBA對象的聲明並初始化爲()循環
- 21. 對象在聲明上已經初始化了嗎?
- 22. 初始化和聲明對象和方法
- 23. 聲明期間初始化並創建速記getter/setter
- 24. 如何在初始化對象後自動創建對象?
- 25. 創建JavaScript對象,使用對象初始化
- 26. 創建對象和初始化的對象 - 差異
- 27. VB.NET對象初始化語法基礎
- 28. 初始化對象
- 29. 對象初始化
- 30. 初始化對象