作者brianhsu (坟墓)
看板java
标题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
1F:推 dendrobium:那为了保持一致性,应该也改成 ??? 或 null 吧 01/01 21:23
你是对的,我把他改过来了。:p
※ 编辑: brianhsu 来自: 59.120.199.114 (01/01 21:27)
2F:推 dendrobium:因为我不会java,所以写某位置我会以为有新物件产生 01/01 21:29
3F:→ johnhmj:布莱恩老师说:「我快要挂点了… X0」~ 01/01 21:39
4F:→ sbrhsieh:array element 会 initialize 成 element type 对应的 01/02 16:56
5F:→ sbrhsieh:预设值,应该是从 Java 最初的版本就有 01/02 16:58
6F:推 papayamilk:推 04/20 20:54