09/05/08 19:23:34
>>590
あ、そうなの?スマンちゃんと読んでいない
>>591
C#やVBの方がnew文化と言っているのはプリミティブ型がないからとか、そんな理由かな?
APIは断然Javaの方がnew文化だと思うよ。
例を挙げればきりがないけど、例えばファイルの有無を調べるのにFileクラスをnewしなければならないとか。
計算量が多くなるのも、.NETと両方使ってるとよく体感できるよ
例えば、String#substring(startIndex,endIndex)のstartIndexは0スタートで、endIndexはスタートなんておかしい仕様、startIndexからのlengthでもないのに。
こういったおかしい仕様の補正処理を加えてソフトを作らなきゃいけない。細かい事かもしれないけど、結構変なAPI多いんだよJavaの場合。
>>592
.NETのデストラクタはガベージコレクションがメモリを破棄する時に実行されます。
つまり完全にタイミングが取れないので注意しましょう。
592さんのように勘違いする人が多いので.NETのデストラクタは怖い。
破棄したいリソースがあるならデストラクタは使わず、Dispose()メソッドを用意するのが吉です。
>>596
今でもガベージコレクションを持つプラットフォームでのインスタンス化は大きなボトルネックになります。
ので内部設計時には充分な注意を払うのが上級者です。
組み込みではそのような言語を扱うのが稀なため、逆にそれほど気をつけなくても良いかな
JavaとCのパフォーマンスチューニングは気にする箇所がまったく異なってきます。