==とequalsメソッドの違い 値が同じかどうかを見るにはequalsメソッドを使う
参照型変数にはデータそのものではなく、データの格納先(参照先)を示す値が入っています。
[参照記事] PHPでの==の意味
文字列の比較には通常、equalsメソッドを使うが、==による比較をおこなうと参照先が同じかどうかを判定する事ができます。
equalsメソッドの場合は、別々のメモリに同じ文字列が格納されていてもtrueになりますが、==ではfalseになります。
String a,b; a="xxx"; b=a; // 変数aとbは同じ参照先を指している。 System.out.println(a==b); // true : 同じ参照先 System.out.println(a.equals(b)); // true : 同じ値 a="xxx"; b="xxx"; // 変数aとbは同じ参照先を指している。 System.out.println(a==b); // true : 同じ参照先 System.out.println(a.equals(b)); // true : 同じ値 a="xxx"; b=new String("xxx"); // 変数aとbとは異なる参照先に同じ値が格納されている。 System.out.println(a==b); // false: 参照先が異なる System.out.println(a.equals(b)); // true : 同じ値 a=new String("xxx"); b=new String("xxx"); // 変数aとbとは異なる参照先に同じ値が格納されている。 System.out.println(a==b); // false: 参照先が異なる System.out.println(a.equals(b)); // true : 同じ値 a=new String("xxx"); b=a; // 変数aとbは同じ参照先を指している。 System.out.println(a==b); // true : 同じ参照先 System.out.println(a.equals(b)); // true : 同じ値 a="xxx"; b=a; a="yyy"; // 変数aとbとは異なる参照先に異なる値が格納されている。 System.out.println(a==b); // false: 参照先が異なる System.out.println(a.equals(b)); // false: 異なる値 System.out.println(b); // xxx : bの値は変わらない a=new String("xxx"); b=a; a=new String("yyy"); // 変数aとbとは異なる参照先に異なる値が格納されている。 System.out.println(a==b); // false: 参照先が異なる System.out.println(a.equals(b)); // false: 異なる値 System.out.println(b); // xxx : bの値は変わらない
関連記事
- プログラムでもっとも正確に日本の祝日を求める方法(内閣府公表CSVの過去3度の改訂履歴)
- Twitter APIでのエラーの一覧
- cron実行時の標準出力のメールを飛ばさない方法(cron実行時に毎回メールを飛ばさない)
- cron実行時のPATHなどの環境変数を確認する方法
- cronのメール送信先を指定する方法(cronごとに送信先のメールアドレスを指定する方法)
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- 『crontab -r』でcronの設定を間違って消してしまった場合の対処法
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
- 「ID」や「ID_xxxx」という文字列があるCSVファイルをExcelで開くとSYLKエラーが出る
- Excelの日付が数字になるときの対処法
- facebook APIを使用する時にfacebook Appsでアプリを登録するまでの流れ
- SELECTタグで色を選択する場合のサンプル
- 文字列の置き換えを行う方法 (replaceAllで気をつけること)
- 文字列の部分一致検索を行う方法
- Java メモリー使用量を取得する方法
- 実行中のメソッド名やクラス名を取得する方法
- Singletonパターンを使ってクラスのインスタンスを1つにする(共有クラスのリソースを削減する方法)
- deleteOnExit()メソッドは環境によって動作が違う JVM+Windows
- [暗号化]ブロック暗号とは(AES/DES/Blowfish PKCS5Padding ECB/CBC IV)
- Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
- javaコマンドは実行できるが、javacコマンドが実行できないとき
- Javaをコマンドラインから実行する
- JD-Eclipse 自動で逆コンパイルをすることができるプラグイン
- Java標準以外のライブラリ(パッケージ)を読み込む方法 jarファイルを追加する
- switch文とif文の違い
- NetBeans6のインストール(JavaだけでなくRuby、PHP、C/C++に対応した統合開発環境)
- Java JDK6のインストール
- 変数のデータ型
- Eclipseで逆コンパイルを行う JadClipse
- scarab [バグ追跡システム]
- JTrac [バグ追跡システム]
スポンサーリンク