タグ

Stringに関するyamatantanのブックマーク (4)

  • リテラル文字列のインスタンスと参照について - しゅんの雑感日記

    会社の大先輩(っつーか俺のJavaの先生の先生)からStringについての質問を受けた。質問の内容は昔読んだに書いてあった内容だったので、答えた後に情報元のを持って行った。 ついでだし、結構ひっかかりやすい所なので一応書いておこう。 String型をイコール(==)比較するとどうなるの?簡単に言うと、Javaの基に則って「その変数の参照先が同じならtrue、違うならfalseである」という答えになる。 Javaの「==」を使用した比較は、基型の場合はその数値を比較し、オブジェクト型の場合はその変数への参照アドレスを比較するからだ。 どんな時に参照先が同じで、どんな時に違うの?ここが他のクラスと違う所。言葉だけで説明するのは難しいので、サンプルで説明しよう。このようなプログラムを作成すると、どうなるのか。 String a = "A"; String b = "A"; a = b;

    リテラル文字列のインスタンスと参照について - しゅんの雑感日記
  • はてなブログ | 無料ブログを作成しよう

    ハリイカの焼売と中華炒め ハリイカをよく、見かけるようになりましたよ。生け簀で、泳いでいたものを一杯購入しました 立派な大きな墨袋や肝は冷凍保存して 柔らかな身は季節のお豆、お野菜と合わせて中華の炒めものに。新鮮なにんにくの茎は刻み、香り高く欲そそられますね 下足はミンチにし…

    はてなブログ | 無料ブログを作成しよう
  • わかりずらい Java の参照渡し (1/3) (tec-q note)

    Java の引数はプリミティブ型であれば値渡し、オブジェクトであれば参照渡しというのは周知の事実です。 その参照渡しは "オブジェクトの参照" を渡すのですが、広く知られている "変数の参照" を渡す方法と区別されていないためか、しばしば混乱する場合があります。 例を挙げるとわかりやすいと思います。下のソースを見てください。サンプルA public class SampleA { public static void main(String[] args) { String s1 = "main メソッド実行"; ・・・1 SampleA sampleA = new SampleA(); sampleA.test1(s1);        ・・・2 System.out.println(s1);     ・・・4 } public void test1(String s2) { s2 =

  • immutableなStringとmutableなArrayListな話 - (define -ayalog '())

    immutable??mutable?? ということで、immutable(イミュータブル:不変)とmutable(ミュータブル:変更可能)なオブジェクトの話です。 そもそもimmutable/mutableってなんだろう?というところから書きたいと思います。 |> immutable(不変)オブジェクトとは オブジェクト(インスタンス)そのものの状態を変更できないこと。 Javaにおける代表格はStringクラスです。事実Stringは自分自身の状態を変更するメソッドを提供していません。 ※replaceメソッドなんかは勘違いされやすいですが、自分自身が変化することはないと覚えていれば分かりやすいかと。 不変オブジェクトとして、必要な条件は下記の通り。 オブジェクトの内部状態を変更可能なメソッドを提供しない。(つまり、getterは用意してもsetterやそれに準ずるものは用意しない)

    immutableなStringとmutableなArrayListな話 - (define -ayalog '())
  • 1