• ベストアンサー

二つの違い

いつも参考にさせて頂いています。 初歩的な質問ですが宜しくお願いします。 例えばStringBufferクラスを使用するとします。 1. StringBuffer buf = new StingBuffer(); 2. StringBUffer buf = null; buf = new StringBUffer(); 上記コード2つの違いって何かありますでしょうか? もしあるとすればどういうときに使い分けるのでしょうか? 先日他の方のソースを見ていたら発見したので気になって質問してみました。どうか宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.3

>>2.の2行目を使う案件は有得ると思います。 >とのことですが、具体的にどういうときに使い分けるものなのでしょうか? 汎用的な関数を書いている時におきやすいですね。 つまり、bufがnullでもnew StingBuffer()されていても受け付ける ような関数です。 使い分けるというよりは、必要に迫られる訳です。 色々な要求がありますから、色々な手法を知っておくのは、設計に 余裕が出ます。

その他の回答 (2)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

Java 超初心者なのですが。 1. だと new StringBuilder() が例外を投げたときに buf の内容が不定になるのでわざわざ 2. では null で初期化しているような気がします。 もっとも例外が投げられるような状況で buf の内容を参照する意味はほとんどないと思いますが。 また StringBuilder のコンストラクタが例外を投げるかどうかも確認してません。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.1

前後関係が無く、単純に書かれた通りであれば、 2.の方が効率が悪い、だけですね。 2.の2行目を使う案件は有得ると思います。

pgBeginImo
質問者

お礼

早速の回答ありがとうございます。 >2.の2行目を使う案件は有得ると思います。 とのことですが、具体的にどういうときに使い分けるものなのでしょうか? 質問に質問を重ねてすいませんが宜しくお願いします

関連するQ&A