String comparisons in Java

Published on:

The intern() technique

To retailer a String in a String pool, we use a way referred to as String interning. Right here’s what Javadoc tells us concerning the intern() technique:


    /**
     * Returns a canonical illustration for the string object.
     *
     * A pool of strings, initially empty, is maintained privately by the
     * class {@code String}.
     *
     * When the intern technique is invoked, if the pool already incorporates a
     * string equal to this {@code String} object as decided by
     * the {@hyperlink #equals(Object)} technique, then the string from the pool is
     * returned. In any other case, this {@code String} object is added to the
     * pool and a reference to this {@code String} object is returned.
     *
     * It follows that for any two strings {@code s} and {@code t},
     * {@code s.intern() == t.intern()} is {@code true}
     * if and provided that {@code s.equals(t)} is {@code true}.
     * 
     * All literal strings and string-valued fixed expressions are
     * interned. String literals are outlined in part 3.10.5 of the
     * The Java™ Language Specification.
     *
     * @returns  a string that has the identical contents as this string, however is
     *          assured to be from a pool of distinctive strings.
     * @jls 3.10.5 String Literals
     */ public native String intern();

The intern() technique is used to retailer Strings in a String pool. First, it verifies if the String you’ve created already exists within the pool. If not, it creates a brand new String within the pool. Behind the scenes, the logic of String pooling is predicated on the Flyweight sample.

- Advertisement -

Now, discover what occurs after we use the new key phrase to power the creation of two Strings:

See also  What is Alteryx? An Introductory Guide
- Advertisment -

Related

- Advertisment -

Leave a Reply

Please enter your comment!
Please enter your name here