タグ

idiomとjavaに関するyukungのブックマーク (7)

  • try-with-resourcesでリソース解放されないパターン - Qiita

    Java7から"try-with-resources"構文が追加されました。 ファイルやDBアクセスしたあとのリソース解放を自動で行ってくれる大変便利な機能で、解放し忘れをなくし、コードをすっきりさせることができます。 ただし、書き方によってリソースが解放されないパターンがあったので紹介します。 具体的には以下のような場合です。 リソース解放の対象クラスをネストさせてインスタンス生成した場合、コンストラクタで例外が発生するとリソース解放されません。 File file = new File("out.txt"); // PrintWriterがインスタンス生成に失敗すると、BufferedWriter・FileWriterが解放されない try(PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))

    try-with-resourcesでリソース解放されないパターン - Qiita
  • 「privateな変数にpublicなアクセサを定義する」? - ネットの海の片隅で

    きっかけ こんなツイートがRTで流れてきた。 Java技術者です、って求職してきた人にする質問の一問目は 「なぜフィールドはprivateにしてgetter/setterプロパティを書くべきなのだと思いますか?」 がいいのではないかと思い始めた。— ゆば大好き (@yuba) 2014, 9月 26 そのとき思ったこと 「変数をプライベートにして、それに対してアクセサを定義する」っていうのはちょっと違う気がする。— S.Osa (@osa522) 2014, 9月 26 「外部に公開するインターフェイスを決定して、そのために必要な変数をプライベートで保持する」っていう感じ。— S.Osa (@osa522) 2014, 9月 26 変数ありきなのではなく、インターフェイスありき。 インスタンスが持っている変数は実装の詳細であって、そのインスタンスのメソッドを呼び出す側からするとどうでも良い

    「privateな変数にpublicなアクセサを定義する」? - ネットの海の片隅で
  • javaで「+」をつかって文字列結合したらどうなるか

    おーたにさんに何か書けと言われたので何か書いてみます。 よくjavaで「+」つかって文字列結合すると遅いから止めた方がいいよって言われますよね?どんなケースでもまずいんでしょうか?気になったので調べてみました。 こんな感じでいくつか文字列を結合するサンプルを作ってそれをjavapにかけてみます。 public class A { public String a(String s) { s = s + "a"; s = s + "b"; return s; } public String b(String s) { s += "a"; s += "b"; return s; } public String c(String s) { return s + "a" + "b"; } public String d(String s) { return "a" + "b"; } }

  • 文字列の結合をやるからといって、すぐにStringの+をつかってはいけない - かとじゅんの技術日誌

    文字列の結合っていろいろなやり方があるのですが、みなさんはどんなやり方をされていますか? String firstName = "Junichi"; String lastName = "Kato"; String fullName = ""; fullName += firstName; fullName += lastName; とか、もちろんやってないですよね? +演算子ってわかって使わないとヒドイことになりますよw 性能をはかってみよう ちょっと、簡単に以下のような性能をはかるテストを書いてみた。 文字列の連結方式としては、 Stringの+演算子 Stringのcontractメソッド StringBufferのappendメソッド StringBuilderのappendメソッド が考えられるので、それらの性能をはかってみた。 package tests; import org

    文字列の結合をやるからといって、すぐにStringの+をつかってはいけない - かとじゅんの技術日誌
  • Java文字列メモ(Hishidama's Java String Memo)

    一文字:char [/2010-06-20] 不変の文字列:String [/2023-09-24] 可変の文字列:StringBuffer/StringBuilder [/2023-09-24] StringWriter(PrintWriter)/PrintStream [/2009-02-14] StringJoiner [2014-03-19] コードポイントの例 [2017-01-28] 文字のStream [2014-04-29] 文字列の結合 [2007-07-01] 単独の結合の実行時間 ループ内結合の実行時間 +演算子の実態 [/2008-01-27] 結論 [/2014-04-29] 文字列の比較方法 [2008-04-16] 文字列比較の書き順 [2008-05-02] 半角カタカナ・全角ひらがな変換 [2012-06-15] 半角英数変換 [2014-04-29] c

  • 文字列連結と+演算子について整理しておく - 日々常々

    何度か書いているけど、整理的な意味で。今後は「このエントリ参照」にするつもりで書いてみる。 文字列連結から見るシステム内で扱う型について - 日々常々 Javaプログラマであるかを見分ける10の質問 に答えてみる - 日々常々 String の連結ネタの続き - 日々常々 前書き Stringなんてboxed primitive*1でもないただのクラスのくせに、中途半端に贔屓されて*2てムカつく*3し、その中途半端ぶり*4がなお腹立たしい……。そして +演算子 で連結して問題が起こるような状況、つまりそんな長々と文字列連結したいような場合は、きっと他の適した型がある。StringBuilderじゃなく、もっと別の何か。業務要件で文字列を組み立てる目的を考えれば、たぶんテンプレート的なものに落ち着くんじゃ無かろうか。ライブラリ的な所でなら逐次書き出し等になるような。どちらにせよ文字列の組み立

    文字列連結と+演算子について整理しておく - 日々常々
  • Stringの連結はそう簡単なものではない - かとじゅんの技術日誌

    追記: 指摘の通りで、現実的な連結回数での計測でもないですし、統計手法を用いた分析をしていないので、このエントリの計測値は当てにしないでください。なので以下のブログを参考にしてください。 currentTimeMillis()で計測しておいて plusTime:14780, concatTime:7053, sbuilderTime:7, sbufferTime:13 とか、その7とか13の有効数字はいくつだっての。 激しく今更感があるタイトルですが(;・∀・) 昔に取り上げたのですが、 文字列の結合をやるからといって、すぐにStringの+をつかってはいけない - じゅんいち☆かとうの技術日誌 Stringの+演算子は間違った使い方するとパフォーマンスが低下しますよっていう話題。若干ネタ成分ありますが、ご容赦ください。 これ系の話題は自分的にはオワコンなんですが、最近、また話題を見つけた

    Stringの連結はそう簡単なものではない - かとじゅんの技術日誌
  • 1