看板 java 關於我們 聯絡資訊
※ 引述《sbrhsieh (十年一夢)》之銘言: : : -- : : ◆ From: 118.168.127.139 : : 推 PsMonkey:其實... 用中文感覺很怪...... 10/14 21:16 : : → adrianshum:我個人是寧願用 pointer 一詞。reference 常有不清混淆 10/14 22:33 : : → adrianshum:還有其實 Java 的 ref 根本就是概念上的 pointer,只是 10/14 22:34 : : → adrianshum:沒有像C/C++那種 pointer arithematics 而己 10/14 22:34 : : → Chikei:ptr +1,用ref常會有人問call by ??跟參照到哪個實體的問題 10/14 22:59 : 主要是看個人對 pointer 的定義。 : 我個人認為能作 pointer arithmetic 的才叫 pointer。 呃,我想Java對pointer的定義正好是不能做poitner arithemetic的pointer JLS7: 4.1 The Kinds of Types and Values There are two kinds of types in the Java programming language: primitive types (§4.2) and reference types (§4.3). There are, correspondingly, two kinds of data values that can be stored in variables, passed as arguments, returned by methods, and operated on: primitive values (§4.2) and reference values (§4.3). 4.3 Reference Types and Values 4.3.1 Objects An object is a class instance or an array. The reference values (often just references) are ***pointers*** to these objects, and a special null reference, which refers to no object. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.138.208
swpoker:java就是沒有C/C++的指標阿~雖然原PO應該如何隱藏實作吧 10/15 09:23
sbrhsieh:如果設計者這樣想,為什麼不在 spec. 裡直接用 pointer v 10/15 15:46
sbrhsieh:而是用 ref value, 整個 spec. 只曇花一現提到 pointers? 10/15 15:48
adrianshum:沒有人知道為什麼會叫ref, 尤其從NullPointerException 10/15 22:06
adrianshum:的名字可見其實原本好像真的是用 Pointer 一詞。有人猜 10/15 22:06
adrianshum:想是當初推出前為了和C/C++的"萬惡" pointer 有所分野 10/15 22:07
adrianshum:所以改用 reference 一詞。是真是假就不得而知了 10/15 22:07
sbrhsieh:換個名稱很合理啊,不然我會笑稱它三腳貓pointer XD 10/15 22:24
adrianshum:問題是叫ref太容易混淆了。我寧願叫Handle或Opeque Ptr 10/16 06:27
adrianshum:況且pointer 的重點是indirection, ptr arithemaic本來 10/16 06:29
adrianshum:就不是必要... 10/16 06:29
aiti80630:版標是在講這篇嗎? 10/16 13:01
Schelfaniel:C# 就是用 NullReferenceException 的樣子 10/16 13:02
PsMonkey:幹麼那麼注意版標 XDDD 10/16 13:25
Killercat:C#....這狀況又複雜點 尤其混雜unsafe的時候 +_+ 10/16 13:28
Killercat:不過在正常沒有unsafe下 大致上跟java應該是一樣的 10/16 13:30
aiti80630:因為版標變更的頻率也太高了 10/16 17:24