Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6802599
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T19:14:34+00:00 2026-05-26T19:14:34+00:00

Possible Duplicate: How do I compare strings in Java? why first comparison ( s1

  • 0

Possible Duplicate:
How do I compare strings in Java?

why first comparison ( s1 == s2 ) displays equal whereas 2nd comparison ( s1 == s3 ) displays not equal….?

    public class StringComparison
    {

         public static void main( String [] args)
         {
              String s1 = "Arsalan";
              String s2 = "Arsalan";

              String s3 = new String ("Arsalan");

              if ( s1 == s2 )
                 System.out.println (" S1 and S2 Both are equal...");
              else
                 System.out.println ("S1 and S2 not equal");

              if ( s1 == s3 )
                 System.out.println (" S1 and S3 Both are equal...");
              else
                 System.out.println (" S1 and S3 are not equal");

         }
     }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T19:14:35+00:00Added an answer on May 26, 2026 at 7:14 pm

    This has to do with the fact that you cannot compare strings with == as well as compiler optimizations.

    == in Java only compares if the two sides refer to the exact same instance of the same object. It does not compare the content. To compare the actual content of the strings, you need to use s1.equals(s2).

    Now the reason why s1 == s2 is true and s1 == s3 is false is because the JVM decided to optimize the code so that s1 and s2 are the same object. (It’s called, “String Pooling.”)


    Per 3.10.5: Pooling of string literals is actually mandated by the standard.

    Moreover, a string literal always refers to the same instance of class
    String. This is because string literals – or, more generally, strings
    that are the values of constant expressions (§15.28) – are “interned”
    so as to share unique instances, using the method String.intern.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Possible Duplicate: String comparison in Java heres my script: public class euler4 { /**
Possible Duplicate: How do I compare strings in Java? String s1 = andrei; String
Possible Duplicate: How do you compare two version Strings in Java? I've 2 strings
Possible Duplicate: How do I compare strings in Java? Am I am comparing strings
Possible Duplicate: How to compare strings? ( == returns wrong value) I have the
Possible Duplicate: Octave/MATLAB: How to compare structs for equality? is there a simple comparison
Possible Duplicate: javascript compare strings without being case sensitive. I am having two fields.
Possible Duplicate: how to compare case insensitive two strings in php I need to
Possible Duplicate: How should I do floating point comparison? Is it not recommended to
Possible Duplicate: How do I compare a raw time in Java? For example suppose

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.