JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:Thread呼叫 [Re:Wayne]
jimwayne





發文: 220
積分: 0
於 2014-03-26 16:03 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Wayne wrote:
謝謝你.
答案是否因為物件實體還沒有產生而發生記憶體存取失敗?

是的~static 能被存取的原因是因為程式被執行時,宣告為 static 的物件就會被初始化
但 non-static 的物件必須等到有程式碼呼叫 new 時才會被初始化。

因此宣告 static 的物件,可以直接透過 [類別名稱].[變數名稱] 的方式呼叫
編譯器可以確認這個變數一定已經被初始化了,而且不管這個類別產生幾個實例,該變數都只有唯一的實例
這時不管呼叫變數是透過 [類別名稱].[變數名稱] 還是 [類別變數名稱].[變數名稱] 都可以
都會 reference 到同一個變數實例。

但對於 non-static 的物件,用 [類別名稱].[變數名稱] 呼叫時,可能有兩種問題
一種是類別尚未被任何程式碼透過 new 實例化過,這時該變數根本不存在
另一種則是類別可能被好幾段程式碼都實例化了,編譯器(或 JVM)不知道 [類別名稱].[變數名稱] 應該要連結到哪一個實例


jimwayne edited on 2014-03-26 16:05
reply to postreply to post
Java 工作者,但仍然是個初心者.....
話題樹型展開
人氣 標題 作者 字數 發文時間
666 Thread呼叫 Wayne 1117 2014-03-14 16:38
534 Re:Thread呼叫 jimwayne 207 2014-03-14 21:42
449 Re:Thread呼叫 Wayne 596 2014-03-24 17:14
441 Re:Thread呼叫 bluewingsky 148 2014-03-24 17:30
448 Re:Thread呼叫 jimwayne 478 2014-03-24 18:31
399 Re:Thread呼叫 Wayne 171 2014-03-26 15:13
380 Re:Thread呼叫 jimwayne 479 2014-03-26 16:03
401 Re:Thread呼叫 Wayne 476 2014-03-26 17:32
502 Re:Thread呼叫 dreamltf 244 2014-03-15 11:30
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8