[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: Javaとポインタ




会社にでてるついでで言い訳しちゃいます.

In article <199904291821.DAA18902@xxxxxxxxxx>
前橋 和弥 wrote:
>CORBAを使おうがRMIを使おうが、ポインタは「何かを指し示すモノ」
>であって、別にアドレスではない、と私は思っているのですが、ま
>あ、CORBAでは、ポインタの比較を==でできないのはしょうがない
>ですね。
>
># C++なら、演算子のオーバーロードでごまかしてあるのでしょうか?
>
>このスレッドでは結論が出ていないようなのですが、RMIではどう
>なのでしょう? > 詳しい人

RMIも変数が指すのはstubなので、別の経路で取得したリモートオブジェ
クトは==じゃ一致判定はできないでしょうね.

>>後の意見の食い違いは「ポインタ」という用語の定義が曖昧なせいですね.
>>みんなポインタというとCの「ポインタ変数」を思い浮かべるらしいので、
>>それと混同されないように「参照」だと言い張るのではないでしょうか.
>
>これは、そうかもしれません。C/C++の場合、ポインタは「実装上」
>アドレスそのものですから。
>
>でも、だから、ポインタでなく「参照」と呼ぶ、というだけならまだしも...
>「Javaにはポインタはない」はいくらなんでも言い過ぎでしょう。
>
まあポインタという言葉自体の世の中の認識が狂っているということで..
私は逆にC言語の話でしか使わないようにしています.
# C言語に限定しても扱いづらい言葉だと思いますが.

>># 内部的には同じ扱いであることが多いですが.
>
>ん? C/C++ならそうですが、Javaの場合、ポインタは内部でも物理
>的なアドレスではないですよね。もちろん実装によるのでしょうが、
>アドレスを直接持っちゃうと、GCに支障がでるような。

うーん.逆に今時の(Cの)ポインタの方が物理的なアドレスという意味が
薄れて来てると思ってるので、そっちの方がJavaでの扱いに似てきたと
いうか...
# もう一回言い直せば、(実装は確認していませんが)「Javaの変数はオブ
# ジェクトのIDを保持している」ような認識です.
# そして、Cのポインタも領域を表すIDとして仮想アドレス値を保持す
# る、と.

説明べたの言い訳終わり.さあしごとしよ.

──────────────────
木下 信@イデア
──────────────────