Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære String Pool, Metode Equals() | Seksjon
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
Java-Grunnleggende

bookString Pool, Metode Equals()

Sveip for å vise menyen

equals()-metoden

Denne metoden brukes til å sammenligne objekter og benyttes ofte med String-objekter. La oss se på et eksempel der vi oppretter to identiske strengvariabler og sammenligner dem med ==:

Main.java

Main.java

copy
123456789
package 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); } }

Resultatet er false fordi == sammenligner objektreferanser, ikke de faktiske verdiene. Selv om begge strengene inneholder "string", er de ulike objekter i minnet og er opprettet utenfor String pool.

String pool

String pool er en del av heap-minnet hvor streng-litteraler lagres. Når du oppretter strenger med samme verdi ved hjelp av litteraler, refererer de til det samme objektet i minnet.

Hvorfor fikk vi da false? Fordi vi omgår string pool ved å bruke new String("string"), som oppretter et nytt objekt i minnet. Når du bruker String first = "string";, plasseres strengen i string pool og kan deles.

La oss se på et kodeeksempel:

Main.java

Main.java

copy
1234567891011
package 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)); } }

La oss se på et diagram som forklarer hvordan dette fungerer og hvilke objekter som finnes i String Pool.

Hvordan sammenlignes verdiene til strenger i String Pool og de utenfor? For dette formålet tilbyr Java metoden equals, som sammenligner verdiene til våre String-objekter i stedet for referansene deres. La oss se på et eksempel hvor vi sammenligner strenger ved å bruke equals-metoden i stedet for ==.

Main.java

Main.java

copy
1234567891011
package 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))); } }

Nå kan vi se at vi har den korrekte sammenligningen.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 35

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 1. Kapittel 35
some-alt