Qual è il concetto di String Pool in java?



String Pool in Java è un pool di stringhe memorizzato nella memoria heap Java. Questo tutorial ti aiuterà con un approccio dettagliato al pool di stringhe Java con esempi.

Hai sentito parlare del termine 'String pool in Java?' Bene, se no, sei atterrato nel posto giusto. String Pool in Java è un pool di stringhe in cui è memorizzato Heap Memory. Cerchiamo di scavare un po 'più a fondo e comprendere in dettaglio questo concetto di pool di Java String.

I seguenti suggerimenti saranno discussi in questo articolo:





Cominciamo!

Prima di tutto, vediamo come viene creato esattamente un oggetto stringa!



Come creare una stringa?

Per creare un oggetto String in Java, ci sono due modi:

  • Utilizzando il nuovo operatore. Per esempio,
Stringa s1 = nuova stringa ('Joey')
  • Utilizzo di un'espressione letterale o costante stringa. Per esempio,
String s1 = 'Joey' (stringa letterale) o String s1 = 'Joe' + 'y' (espressione costante di stringa)

Ora, cos'è questo pool di stringhe di cui sto parlando e in che modo la creazione di una stringa in Java è correlata a questo. Fammi ridurre il disordine!

Cos'è il pool di stringhe in Java?

String Pool è un'area di archiviazione nell'heap Java.



Allocazione delle stringhe, come tutte allocazione degli oggetti , si rivela un affare costoso sia nel caso del tempo che della memoria. La JVM esegue alcuni passaggi durante l'inizializzazione dei valori letterali di stringa per aumentare le prestazioni e ridurre l'overhead della memoria. Per diminuire il numero di oggetti String creati nella JVM, la classe String mantiene un pool di stringhe.

come usare atom con python

Ogni volta che viene creato un valore letterale stringa, il JVM controlla prima il pool letterale stringa. Se la stringa esiste già nel pool di stringhe, viene restituito un riferimento all'istanza in pool. Se la stringa non esiste nel pool, viene inizializzato un nuovo oggetto String e viene inserito nel pool.

Dopo aver appreso il concetto in teoria, lascia che ti dica come funziona un pool di stringhe in Java passo dopo passo con l'aiuto di semplici istanze!

Come funziona il pool di stringhe in Java?

Quando crei una nuova stringa come questa:

Stringa s1 = 'Rachel'

JVM controlla automaticamente se lo stesso valore esiste o meno nel pool di costanti di stringa.

  • se sì, occupa il valore già esistente.
  • In caso negativo, crea autonomamente una nuova stringa e la aggiunge al pool di stringhe.

Se vuoi interrompere questo comportamento, crea una stringa usando l'operatore new:

Stringa s1 = nuova stringa ('Rachel')

Ora, se sei disposto ad aggiungere questa stringa al file , Java ti fornisce un metodo chiamato metodo intern () che puoi chiamare metodo nativo intern () come questo:

S1.intern ()

Ora, ti mostrerò l'implementazione e il funzionamento del pool di stringhe attraverso un esempio.

Ma prima, un breve promemoria!

Come sai, se stai confrontando 2 oggetti usando l'operatore ==, confronta gli indirizzi nella memoria.

Quindi confronteremo le stringhe usando == per essere completamente sicuri che sia lo stesso oggetto o meno.

Ora, passiamo al nostro processo di implementazione.

Pool di stringhe in Java: diagramma di flusso

String-pool - Edureka

Ora vediamo passo dopo passo cosa succede qui:

  • La classe viene caricata quando viene invocato.
  • JVM cerca tutti i valori letterali stringa nel programma
  • Innanzitutto, trova la variabile s1 che si riferisce al letterale 'Apple' e viene creata nella memoria
  • Un riferimento per il letterale 'Apple' viene quindi inserito nella memoria del pool di costanti di stringa.
  • Quindi trova un'altra variabile s2 che fa riferimento alla stessa stringa letterale 'Mango'.
  • Quindi trova un'altra variabile s3 che si riferisce al letterale 'Apple'
  • Ora che JVM ha già trovato una stringa letterale 'Apple', entrambe le variabili s1 e s3 faranno riferimento allo stesso oggetto, ovvero 'Apple'.

Programma Java per String Pool

public class StringPoolExperiment {public static void main (String [] args) {String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). intern ( ) System.out.println (s1 == s2) // true System.out.println (s1 == s3) // false System.out.println (s1 == s4) // true}}

Produzione:

Vero
Falso
Vero

Nell'esempio sopra, puoi vedere chiaramente l'uso dell'inizializzazione delle stringhe in tutti e tre i modi, ad es

String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). Intern ()

Forse adesso il funzionamento interno del programma dovrebbe essere chiaro.

come usare la sottostringa in sql

Con questo sono arrivato verso la fine del mio blog. Spero che i contenuti qui elaborati ti abbiano aiutato ad ampliare la tua base di conoscenze. Continueremo ad immergerci nel mondo Java. Rimanete sintonizzati!

Controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione e certificazione Java J2EE e SOA di Edureka è progettato per studenti e professionisti che desiderano diventare sviluppatori Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti per concetti Java sia di base che avanzati insieme a vari framework Java come Hibernate & Primavera .

Hai domande per noi? Per favore menzionalo nella sezione commenti di questo blog 'String Pool in Java' e ti risponderemo il prima possibile.