String representation in Java
<p>A String is represented as objects in Java. Accordingly, an object contains values stored in <em>instance variables</em> within the object. An object also contains bodies of code that operate upon the object. These bodies of code are called <strong>methods</strong>.</p>

<hr>

<p>Objects that contain the same types of values and the same methods are grouped together into classes. A class may be viewed as a type definition for those objects. Accordingly, how is a String in Java represented? Let's consider the following code snippet in Java.</p>

<pre><code> final public class Main
 {
    public static void main(String[] args)
    {
        String s="black lion";
        String s1=new String(s);

        System.out.println(s.toUpperCase());
        System.out.println("black lion".toUpperCase());
        System.out.println(s1.toUpperCase());
    }
}
</code></pre>

<hr>

<p>The above code displays the String after converting it into uppercase. In this statement <code>String s="black lion";</code> , Where is the String being assigned. Is it being assigned into an instance variable within the String class or somewhere? and in this statement <code>"black lion".toUpperCase();</code>. Is it an object of the String class? How?</p>
