LoginSignup
0
0

More than 1 year has passed since last update.

== operator for String object in Java

Posted at

First please read this if you don't sure how to use == operator for object.

Example from The Java® Language Specification

Got from here.

package testPackage;
class Test {
    public static void main(String[] args) {
        String hello = "Hello", lo = "lo";
        System.out.print((hello == "Hello") + " ");  // (1)
        System.out.print((Other.hello == hello) + " ");  // (2)
        System.out.print((other.Other.hello == hello) + " ");  // (3)
        System.out.print((hello == ("Hel"+"lo")) + " ");  // (4)
        System.out.print((hello == ("Hel"+lo)) + " ");  // (5)
        System.out.println(hello == ("Hel"+lo).intern());  // (6)
    }
}
class Other { static String hello = "Hello"; }
package other;
public class Other { public static String hello = "Hello"; }

The output is

true true true true false true

Things you need to know about String class

  1. String object is immutable
  2. A pool of strings, initially empty, is maintained privately by the class String. You may use intern() for looking up reference (Output of (6))
  3. All String constants will refer to the same String instance if the values are the same during compile time, no matter what package is in. And a reference will be stored in pool stated in point 2 (Output of (1), (2), (3), (4))
  4. New String object will be created during runtime (Output of (5))

Suggestion

Don't use == operator for checking if value of two String objects are equal. Please use equals() instead.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0