суббота, 6 января 2024 г.

String in Java

    A string is an object that represents a sequence of characters.

    There are two ways to create String object:

    • By string literal

    Each time you create a string literal, the JVM checks the "string constant pool" first. If the string already exists in the pool, a reference to the pooled instance is returned. If the string doesn't exist in the pool, a new string instance is created and placed in the pool. 

    String s1="Welcome";
    String s2="Welcome";//It doesn't create a new instance


    • By new keyword
    String s=new String("Welcome");//creates two objects and one reference variable

    JVM will create a new string object in normal (non-pool) heap memory, and the literal "Welcome" will be placed in the string constant pool. The variable s will refer to the object in a heap (non-pool).

    String objects are immutable. Immutable simply means unmodifiable or unchangeable. Once String object is created its data or state can't be changed but a new String object is created.

    class Testimmutablestring{
    public static void main(String args[]){
    String s="Sachin";
    s.concat(" Tendulkar");//concat() method appends the string at the end
    System.out.println(s);//will print Sachin because strings are immutable objects
    }
    }



    There are three ways to compare String in Java:
    • By Using equals() Method
    The String class equals() method compares the original content of the string. It compares values of string for equality. 

    class Teststringcomparison1{
    public static void main(String args[]){
    String s1="Sachin";
    String s2="Sachin";
    String s3=new String("Sachin");
    String s4="Saurav";
    System.out.println(s1.equals(s2));//true
    System.out.println(s1.equals(s3));//true
    System.out.println(s1.equals(s4));//false
    }
    }
    • By Using == Operator

    The == operator compares references not values.

    class Teststringcomparison3{
    public static void main(String args[]){
    String s1="Sachin";
    String s2="Sachin";
    String s3=new String("Sachin");
    System.out.println(s1==s2);//true (because both refer to same instance)
    System.out.println(s1==s3);//false(because s3 refers to instance created in nonpool)
    }
    }
    • By compareTo() Method
    The String class compareTo() method compares values lexicographically and returns an integer value that describes if first string is less than, equal to or greater than second string.

    Suppose s1 and s2 are two String objects. If:

    • s1 == s2 : The method returns 0.
    • s1 > s2 : The method returns a positive value.
    • s1 < s2 : The method returns a negative value.
    class Teststringcomparison4{
    public static void main(String args[]){
    String s1="Sachin";
    String s2="Sachin";
    String s3="Ratan";
    System.out.println(s1.compareTo(s2));//0
    System.out.println(s1.compareTo(s3));//1(because s1>s3)
    System.out.println(s3.compareTo(s1));//-1(because s3 < s1 )
    }
    }

    Комментариев нет:

    Отправить комментарий