String Pool, Metodo Equals()
Il metodo equals()
Questo metodo viene utilizzato per confrontare oggetti ed è comunemente usato con oggetti String. Esaminiamo un esempio di creazione di due variabili stringa identiche e del loro confronto utilizzando ==:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { String first = new String("string"); String second = new String("string"); System.out.println(first == second); } }
Il risultato è false perché == confronta i riferimenti agli oggetti, non i loro valori effettivi. Anche se entrambe le stringhe contengono "string", sono oggetti diversi in memoria e sono creati al di fuori dello String pool.
String pool
Lo String Pool è una parte della memoria heap dove vengono memorizzati i letterali stringa. Quando si creano stringhe con lo stesso valore utilizzando i letterali, esse fanno riferimento allo stesso oggetto in memoria.
Perché abbiamo ottenuto false? Perché abbiamo aggirato lo string pool utilizzando new String("string"), che crea un nuovo oggetto in memoria. Utilizzando invece String first = "string";, la stringa viene inserita nello string pool e può essere condivisa.
Vediamo un esempio di codice:
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first == second)); System.out.println("Result of comparing first and third: " + (first == third)); } }
Considerare un diagramma che spiega come funziona e quali oggetti si trovano nello String Pool.
Come si confrontano i valori delle stringhe nello String Pool e quelli esterni ad esso? A questo scopo, Java fornisce il metodo equals, che confronta i valori degli oggetti String invece dei loro riferimenti. Considerare un esempio di codice in cui si confrontano le stringhe utilizzando il metodo equals invece di ==.
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first.equals(second))); System.out.println("Result of comparing first and third: " + (first.equals(third))); } }
Ora possiamo vedere che abbiamo il confronto corretto.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 2.7
String Pool, Metodo Equals()
Scorri per mostrare il menu
Il metodo equals()
Questo metodo viene utilizzato per confrontare oggetti ed è comunemente usato con oggetti String. Esaminiamo un esempio di creazione di due variabili stringa identiche e del loro confronto utilizzando ==:
Main.java
123456789package com.example; public class Main { public static void main(String[] args) { String first = new String("string"); String second = new String("string"); System.out.println(first == second); } }
Il risultato è false perché == confronta i riferimenti agli oggetti, non i loro valori effettivi. Anche se entrambe le stringhe contengono "string", sono oggetti diversi in memoria e sono creati al di fuori dello String pool.
String pool
Lo String Pool è una parte della memoria heap dove vengono memorizzati i letterali stringa. Quando si creano stringhe con lo stesso valore utilizzando i letterali, esse fanno riferimento allo stesso oggetto in memoria.
Perché abbiamo ottenuto false? Perché abbiamo aggirato lo string pool utilizzando new String("string"), che crea un nuovo oggetto in memoria. Utilizzando invece String first = "string";, la stringa viene inserita nello string pool e può essere condivisa.
Vediamo un esempio di codice:
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first == second)); System.out.println("Result of comparing first and third: " + (first == third)); } }
Considerare un diagramma che spiega come funziona e quali oggetti si trovano nello String Pool.
Come si confrontano i valori delle stringhe nello String Pool e quelli esterni ad esso? A questo scopo, Java fornisce il metodo equals, che confronta i valori degli oggetti String invece dei loro riferimenti. Considerare un esempio di codice in cui si confrontano le stringhe utilizzando il metodo equals invece di ==.
Main.java
1234567891011package com.example; public class Main { public static void main(String[] args) { String first = "string"; String second = "string"; String third = new String("string"); System.out.println("Result of comparing first and second: " + (first.equals(second))); System.out.println("Result of comparing first and third: " + (first.equals(third))); } }
Ora possiamo vedere che abbiamo il confronto corretto.
Grazie per i tuoi commenti!