顯示廣告
隱藏 ✕
看板 SuperTree
作者 dick51207 (dick51207.bbs@ptt.cc)
標題 Re: 搞懂變數、物件、參考。(Re: new 語法 …
時間 2013年04月03日 Wed. PM 01:37:44


※ 本文轉寄自 dick51207.bbs@ptt.cc

看板 java
作者 brianhsu (墳墓)
標題 Re: 搞懂變數、物件、參考。(Re: new 語法 …
時間 Fri Jan  1 21:16:53 2010


: 3. array2 = new Object[2];
:
:    // 請在 Heap 裡生一個長度為 2  的陣列物件給我,其中每個元素存的
:    // 應該是個整數。最後把這個陣列物件的記憶體地址塞給 Stack  上叫
:    // array 的東西裡。
:
:              我是 Stack                  右邊都是 Heap
:                                        +--------+--------+
:                                 +----> |  ???   |  ???   | 我住在 0xA000,但
:                                 |      +--------+--------+ 我沒有名字。
:                                 |
:             +-----------+       |      +--------+--------+
: 我叫 array2 |  0xA000   | ------+   +->|   整數 |  整數  | 我住在 0x3456,但
:             +-----------+           |  +--------+--------+ 我沒有名字。
: 我叫 array  |  0x3456   | ----------+
:             +-----------+              +-----------------+
: 我叫 object |  0x1234   | -----------> |   Object 物件   | 我住在 0x1234,但
:             +-----------+              +-----------------+ 我沒有名字。
:      我叫 x |    10     |
:             +-----------+
:
: 推 dendrobium:應該把某位置再指到對應的物件上,不過可能畫不下XD     01/01 21:07

不,這沒有錯,是故意這樣畫的。
實際上某地址並不會指到有效的問件。

object = new Object[2];

只會產生『長度為 2 的陣列』這個物件而且,其中的『某地址』在這個
階段指到的是無效的記憶體位址,或乾脆就是 null。(在 JVM 1.6 裡
的行為是指到 null)

除非明再另外產生出物件給他們,例如:

object[0] = new String ("1234");
object[1] = new Object ();

這樣『某地址』才會實際指到存在的物件。

--
   ~                 白馬帶著她一步步地回到中原。白馬已經老了,只能慢慢地走,
  'v'    Brian Hsu   但終是能回到中原的。江南有楊柳、桃花,有燕子、金魚……
 // \\   ( 墳 墓 )
/(   )\              但這個美麗的姑娘就像古高昌國人那樣固執。 【白馬嘯西風】
 ^`~'^
   http://bone.twbbs.org.tw/blog        『那都是很好很好的,可我偏不喜歡。』

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.199.114
dendrobium:那為了保持一致性,應該也改成 ??? 或 null 吧1F 01/01 21:23

你是對的,我把他改過來了。:p
※ 編輯: brianhsu        來自: 59.120.199.114       (01/01 21:27)
dendrobium:因為我不會java,所以寫某位置我會以為有新物件產生2F 01/01 21:29
johnhmj:布萊恩老師說:「我快要掛點了… X0」~3F 01/01 21:39
sbrhsieh:array element 會 initialize 成 element type 對應的4F 01/02 16:56
sbrhsieh:預設值,應該是從 Java 最初的版本就有
papayamilk:推6F 04/20 20:54

--
※ 看板: SuperTree 文章推薦值: 0 目前人氣: 0 累積人氣: 55 
e)編輯 d)刪除 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇