- - PR -
new String
1
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-09-07 17:02
はじめまして。
今JSP MODEL1ベースのイントラネットシステムの保守作業に参加しています。 コードの中で、 String id = new String(""); String name = new String("john"); のような、動作は問題ないですが、ちょっとJAVAらしくないコードがたくさんあります。 そのコードを片付けたいんですが、 「それはJVMが片付けてくれるからそのままで置いてもよい」と言われました。 本当に大丈夫でしょうか? メモリチューニングのため、片付けほうがいいじゃないかと思いますが。 ご意見よろしくお願いします。 ------------------------------- PS..まだ日本語が変ですが、どうぞよろしくお願いします。 [ メッセージ編集済み 編集者: mikann 編集日時 2004-09-07 17:06 ] | ||||||||||||
|
投稿日時: 2004-09-07 17:08
確かに無駄といえば無駄ですが、今のJVMでは寿命の短いインスタンスの生成/GCのコストは
たいしたことありませんから放っておいても問題ないでしょう。 | ||||||||||||
|
投稿日時: 2004-09-07 17:09
確かに問題にはならないかもしれません。
でも駄目駄目だと思います。 | ||||||||||||
|
投稿日時: 2004-09-07 17:29
伺った内容からは判断に必要な材料がないように見えます。
保守、という仕事がどのようなものなのかわかりませんが、バグつぶしを目的としているのなら放っておいてもよいと思います。 パフォーマンス、メモリフットプリント等のチューニングを目的としているのであれば何がどの程度ボトルネックになっているのか定量的な指標で測って優先順位を決めて修正していけば良いと思います。 すでにかなりチューニングされていて、ここらへんが気になっているようならば要修正リストの上の方にくるべきでしょう。でも恐らくはもっと効果的な修正があるような気がします。 | ||||||||||||
|
投稿日時: 2004-09-07 19:43
私の周りにも、そういうダメダメな既存コードが多くて困っています。 そういうのは読んでるだけでイライラしてくるので精神衛生上良くないのですが、 保守担当でもないのでとりあえず放置しています。 もし、他にお仕事がなくて暇してるのでなければ放置でいいと思いますよ。 | ||||||||||||
|
投稿日時: 2004-09-12 21:40
こんばんわ。
本題とズレた質問になってしまうのですが、 「JAVAらしくないコード」というのはどういう意味なのでしょうか? なぜダメダメなのでしょうか? リテラルのハードコーディング? どなたかご教授ください。よろしくお願いいたします。 | ||||||||||||
|
投稿日時: 2004-09-12 22:58
Javaでは、敢えて文字列リテラルを渡してStringクラスをインスタンス化する 必要はないです。自動的にメモリが割り当てられますから。しかも、同一の リテラルがアロケートされるメモリは、常に同一になります。 | ||||||||||||
|
投稿日時: 2004-09-12 23:28
unibon です。こんにちわ。
このような代入をしている場合は、比較の際にも、
のようなことをしている恐れがあり、うかつに
と書きかえるのは危険です。挙動が変わってしまいます。まあ、これは比較の仕方がすでにダメなので、プログラムがどう動くかを気にしてもしかたがないのですけど。 | ||||||||||||
1
