logo

Java String praktikant()

Det Java String klasse praktikant() metoden returnerer den interne streng. Det returnerer den kanoniske repræsentation af streng.

hvordan man laver om i photoshop

Den kan bruges til at returnere streng fra hukommelsen, hvis den er oprettet af et nyt nøgleord. Det opretter en nøjagtig kopi af heap-strengobjektet i String Constant Pool.

Underskrift

Signaturen for intern() metoden er angivet nedenfor:

 public String intern() 

Vender tilbage

interneret streng

String.intern()-metodens behov og virkemåde

Når en streng oprettes i Java, optager den hukommelse i heapen. Vi ved også, at String-klassen er uforanderlig. Derfor, når vi opretter en streng ved hjælp af det nye nøgleord, allokeres ny hukommelse i heapen for den tilsvarende streng, hvilket er uanset indholdet af arrayet. Overvej følgende kodestykke.

 String str = new String('Welcome to JavaTpoint.'); String str1 = new String('Welcome to JavaTpoint'); System.out.println(str1 == str); // prints false 

Println-sætningen udskrives falsk, fordi der er allokeret separat hukommelse for hver streng-literal. Således oprettes to nye strengobjekter i hukommelsen, dvs. str og str1. der har forskellige referencer.

mysql venstre join

Vi ved, at oprettelse af et objekt er en dyr operation i Java. Derfor, for at spare tid, kom Java-udviklere med konceptet String Constant Pool (SCP). SCP er et område inde i heap-hukommelsen. Den indeholder de unikke strenge. For at sætte strengene i strengpuljen skal man kalde praktikant() metode. Før du opretter et objekt i strengpuljen, kontrollerer JVM, om strengen allerede er til stede i poolen eller ej. Hvis strengen er til stede, returneres dens reference.

 String str = new String('Welcome to JavaTpoint').intern(); // statement - 1 String str1 = new String('Welcome to JavaTpoint').intern(); // statement - 2 System.out.println(str1 == str); // prints true 

I ovenstående kodestykke kaldes intern() metoden på String-objekterne. Derfor er hukommelsen allokeret i SCP'en. For den anden sætning oprettes der ikke noget nyt strengobjekt, da indholdet af str og str1 er det samme. Derfor returneres referencen for objektet, der blev oprettet i den første sætning, for str1. Str og str1 peger altså begge på den samme hukommelse. Derfor udskrives udskriften sand.

Java String intern() Metodeeksempel

Filnavn: InternExample.java

 public class InternExample{ public static void main(String args[]){ String s1=new String('hello'); String s2='hello'; String s3=s1.intern();//returns string from pool, now it will be same as s2 System.out.println(s1==s2);//false because reference variables are pointing to different instance System.out.println(s2==s3);//true because reference variables are pointing to same instance }} 
Test det nu

Produktion:

 false true 

Java String intern() Metode eksempel 2

Lad os se endnu et eksempel for at forstå string praktikant-konceptet.

verilog altid

Filnavn: InternExample2.java

 public class InternExample2 { public static void main(String[] args) { String s1 = 'Javatpoint'; String s2 = s1.intern(); String s3 = new String('Javatpoint'); String s4 = s3.intern(); System.out.println(s1==s2); // True System.out.println(s1==s3); // False System.out.println(s1==s4); // True System.out.println(s2==s3); // False System.out.println(s2==s4); // True System.out.println(s3==s4); // False } } 
Test det nu

Produktion:

 true false true false true false 

Punkter at huske

Følgende er nogle vigtige punkter at huske angående intern() metoden:

hvor mange mission umulig-film er der

1) En strengliteral påberåber sig altid intern() metoden, uanset om man nævner intern() metoden sammen med strengen literal eller ej. For eksempel,

 String s = 'd'.intern(); String p = 'd'; // compiler treats it as String p = 'd'.intern(); System.out.println(s == p); // prints true 

2) Hver gang vi opretter et String-objekt ved hjælp af ny nøgleord, oprettes to objekter. For eksempel,

 String str = new ('Hello World'); 

Her oprettes et objekt i heap-hukommelsen uden for SCP på grund af brugen af ​​det nye nøgleord. Som vi også har fået strengen bogstavelig ('Hello World'); derfor oprettes ét objekt inde i SCP'et, forudsat at det bogstavelige 'Hello World' ikke allerede er til stede i SCP'et.