[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Javaとポインタ
前橋@Nifty です。
自宅からだと、諸般の事情により、スレッドが切れてしまいます。
ごめんなさい(_o_)
木下さん:
>なぜ、Javaの参照の概念をポインタと呼ばないかは、
>http://java-house.etl.go.jp/ml/archive/j-h-b/024634.html#body
>このへん(以降)の意見が参考になります.
ありがとうございます。読みました。
CORBAを使おうがRMIを使おうが、ポインタは「何かを指し示すモノ」
であって、別にアドレスではない、と私は思っているのですが、ま
あ、CORBAでは、ポインタの比較を==でできないのはしょうがない
ですね。
# C++なら、演算子のオーバーロードでごまかしてあるのでしょうか?
このスレッドでは結論が出ていないようなのですが、RMIではどう
なのでしょう? > 詳しい人
>後の意見の食い違いは「ポインタ」という用語の定義が曖昧なせいですね.
>みんなポインタというとCの「ポインタ変数」を思い浮かべるらしいので、
>それと混同されないように「参照」だと言い張るのではないでしょうか.
これは、そうかもしれません。C/C++の場合、ポインタは「実装上」
アドレスそのものですから。
でも、だから、ポインタでなく「参照」と呼ぶ、というだけならまだしも...
「Javaにはポインタはない」はいくらなんでも言い過ぎでしょう。
おかげで、「Javaで連結リストはどうやって書けばいいのですか?」
という定番の質問や、上記JavaHouseの最初の質問のような質問が
出て来るわけです。
># 内部的には同じ扱いであることが多いですが.
ん? C/C++ならそうですが、Javaの場合、ポインタは内部でも物理
的なアドレスではないですよね。もちろん実装によるのでしょうが、
アドレスを直接持っちゃうと、GCに支障がでるような。
># そして最近はいわゆるCのポインタも(アプリケーションプログラマの
># 立場からは)物理アドレスを差すわけではないので、アドレス演算を除
># いてはほとんど同じ概念といってよいですね.
私も今時のCのアプリケーションプログラマなので、ポインタは、
「何かを指し示すモノ」としてしか使いません。ポインタ演算っつー
のは、昔々コンパイラの最適化を手抜きするために付けた歴史的遺
物であって、今時こんなものを使うのは、邪道だと信じております。
# もちろん、syntax sugar としての添字演算子[]を使ったポイン
# タ演算は別として、です。
「Javaにはポインタはない」と言われると、「あなたはポインタを
アドレスのことだでも思っていたのですか?」と言い返したくなり
ます。
# でも、Cの場合、ひとたびバグると、ポインタがアドレスである
# ことを思い知らされるのであった(;_;)
>うういそがしいいい.休みたい...
お疲れ様です。私はもうお休みモードです(^^)
------------------------------------------------------------
de 前橋和弥 maebashi@xxxxxxxxxx
http://member.nifty.ne.jp/maebashi/
------------------------------------------------------------