StringBuilder buff = new StringBuilder(); buff.append("select col1,col2,col3"); buff.append(" from table1"); buff.append(" where id = 123456"); ------------------------------------- String buff = "select col1,col2,col3" + " from table1" + " where id = 123456"; ------------------------------------- 以外とわかってない人が多い。
対抗して、「JavaでStringBuilder使うより+で連結したほうが高速?」(C#なども) (スコア:0)
StringBuilder buff = new StringBuilder();
buff.append("select col1,col2,col3");
buff.append(" from table1");
buff.append(" where id = 123456");
-------------------------------------
String buff = "select col1,col2,col3"
+ " from table1"
+ " where id = 123456";
-------------------------------------
以外とわかってない人が多い。
Re: (スコア:0)
それは一つの式で複数結合している場合はコンパイラが最適化してくれるだけで、
ループの中で結合処理をしてたら普通にStringBuilder使ったほうが高速。
Re: (スコア:0)
コンパイラの最適化とかまで考え及ばず(無知なだけ)で、「StringBuilderを使えば問題ない!!」って
「やり方だけを覚えている」アホが多いって言っているんじゃないの?
実際に数回の限られた文字列結合でStringBuilder使って指摘されても逆切れする人は多い
当然、彼らはStringBuilderを使用すること自体にもコストがかかることや、そのコスト以上の恩恵が得られるのはどの程度からなのか?など考えたことすらない
とりあえず噛み付きたいだけだったんだろうけど、銀の弾丸なんてないってことは素直に認めた方が貴方の将来に+だよ
Re:対抗して、「JavaでStringBuilder使うより+で連結したほうが高速?」(C#なども (スコア:1)
『数回の限られた文字列結合』のコストてどれくらいかかるの。
ハードウェアの力でどうにでもなるところをちくちく最適化するのは、仕事でなくて趣味の範囲だよね。
Re: (スコア:0)
ループでもStringBuilderに最適化してくれないJavaのアホさのために
自分でStringBuilderをちまちま書かなきゃいけないほうは仕事なんだから
そこまでやってもべつにいいでしょ
ループのときはStringBuilder、ループ使わないで一行で結合するなら+って機械的にやるだけでいいんだし
一行で結合する場合は明らかに+のほうがやりたいことが明確だし
Re:対抗して、「JavaでStringBuilder使うより+で連結したほうが高速?」(C#なども (スコア:1)
「コストが無視できないから」「やりたいことが明確でないから」のどちらが本当の理由ですか。
どちらにしても、指摘してやり直させる動機としては弱いけど。
こんなレビューがまかり通るなら、レビュアーの教育にもっと力を入れた方がいい気がする。
アホ対策には全部 StringBuilder を使ってくれるほうが、パフォーマンス劣化の原因が一つ減るので安心できる。