Java-kielen harjoittelija ()

Java String intern () -menetelmä palauttaa merkkijono-objektin kanonisen esityksen.

Merkkijonomenetelmän syntaksi intern()on:

 string.intern()

Tässä merkkijono on Stringluokan objekti .

harjoittelija () Parametrit

intern()Menetelmä ei ota parametreja.

harjoittelija () palautusarvo

  • palauttaa merkkijonon kanonisen esityksen

Mikä on Java String Interning?

Merkkijonon internointi varmistaa, että kaikki saman sisällön merkkijonot käyttävät samaa muistia.

Oletetaan, että nämä kaksi merkkijonoa:

 String str1 = "xyz"; String str2 = "xyz";

Koska sekä str1ja str2sisältö on sama, molemmat jouset samaa muistia. Java internaa merkkijonolitraalit automaattisesti.

Jos kuitenkin luot merkkijonoja käyttämällä newavainsanaa, nämä merkkijonot eivät jaa samaa muistia. Esimerkiksi,

 class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); System.out.println(str1 == str2); // false ) )

Kuten tästä esimerkistä näet, sekä str1: llä että str2: lla on sama sisältö. Ne eivät kuitenkaan ole tasa-arvoisia, koska niillä ei ole samaa muistia.

Tässä tapauksessa voit käyttää intern()menetelmää manuaalisesti siten, että samaa muistia käytetään jousille, joilla on sama sisältö.

Esimerkki: Java String -harjoittelija ()

 class Main ( public static void main(String() args) ( String str1 = new String("xyz"); String str2 = new String("xyz"); // str1 and str2 doesn't share the same memory pool System.out.println(str1 == str2); // false // using the intern() method // now both str1 and str2 share the same memory pool str1 = str1.intern(); str2 = str2.intern(); System.out.println(str1 == str2); // true ) )

Kuten näette, sekä str1: llä että str2: lla on sama sisältö, mutta ne eivät ole alun perin samanarvoisia.

Käytämme sitten intern()menetelmää niin, että str1 ja str2 käyttävät samaa muistipoolia. Kun olemme käyttäneet intern(), str1 ja str2 ovat yhtä suuret.

Mielenkiintoisia artikkeleita...