Re: [問題] JAVA創立物件與方法回傳值問題

看板java作者 ( )時間10年前 (2014/05/10 22:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: 感謝板大的回覆~~ 想請教一下關於第一種情況, 小弟印象中當new了一個物件, JVM會在heap中配置該物件所需的記憶體, 如果有變數承接, 則會將該物件的記憶體位址傳給該變數, 所以像這種沒有變數承接的情況, 是否有可能會造成該記憶體區塊無法被參考到, 進而導致系統效能低落呢? (GC似乎也是隔一段時間才會執行) : ※ 引述《iammarsman ( )》之銘言: : : new TestServerClass(); // 沒有宣告物件承接新物件 : : testServerClass.secondTestMethod(); // 沒有變數承接回傳值 : : 以上兩段程式都沒有出現編譯錯誤且可以正常執行, : ^^^^^^^^^^^^^^^^^^^^^^^^^^ : : 想請問一下這些都是java中所允許的情形嗎? : 如果你說的「Java」是單純的「Java 語言規格」 : 那這個問題,我覺得是自問自答啦 XD : 不允許卻可以正常執行,這是黑魔法吧? lol : : 在什麼情況下會使用上面兩種撰寫方式呢? : : 懇請賜教, 感激不盡! : 你的問題都十分... 微妙 : 我甚至都不知道該怎麼認真回答而不被懷疑是在酸人 : (謎之聲:那是因為你太愛酸人 [指]) : 基本上我會把你的問題歸類為政策面的問題 : 也就是語言規範 / 語法允許你這麼作 : 沒有可不可以的問題,而是適不適合這麼作的問題 : 也就會變成青菜蘿蔔各有所好、各說各話的狀況 : (就像我不懂為什麼有人喜歡 dynamic type language [完全離題]) : new 一個 instance 但是卻不 assign 給任何變數 : 這種情況比較少見 : 甚至可能在某些人的 coding style 中是錯誤 / 壞味道的來源 : 因為理論上應該 / 可以改用 static method 來取代...? : 至於呼叫一個 method,明明有回傳值但是卻不 assign 給任何變數 : 這個狀況基本上很常見,甚至你已經用了一堆只是你不知道 XD : 尤其是在有設計 exception 的情況下 : 很多時候你不 care 回傳值、你比較在意炸了什麼 exception : 我個人最常用的就是 ArrayList.add() : 我甚至不知道為什麼它要有回傳值 : source code 當中永遠回傳 true : 只能說 Collection.add() 當初設計時應該有其他考量 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 71.187.154.74 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1399732958.A.D62.html
文章代碼(AID): #1JRZhUrY (java)
討論串 (同標題文章)
文章代碼(AID): #1JRZhUrY (java)