String Pool en de Equals()-Methode
Veeg om het menu te tonen
De equals()-methode
Deze methode wordt gebruikt om objecten te vergelijken en wordt vaak toegepast bij String-objecten. Bekijk het volgende voorbeeld waarin twee identieke stringvariabelen worden aangemaakt en vergeleken met ==:
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); } }
Het resultaat is false omdat == objectreferenties vergelijkt en niet de daadwerkelijke waarden. Hoewel beide strings "string" bevatten, zijn het verschillende objecten in het geheugen en zijn ze buiten de String pool aangemaakt.
String pool
De String Pool is een deel van het heap-geheugen waar string-literals worden opgeslagen. Wanneer je strings met dezelfde waarde maakt via literals, verwijzen ze naar hetzelfde object in het geheugen.
Waarom kregen we dan false? Omdat we de string pool omzeilden door new String("string") te gebruiken, wat een nieuw object in het geheugen aanmaakt. Bij gebruik van String first = "string"; wordt de string in de string pool geplaatst en kan deze gedeeld worden.
Bekijk het volgende codevoorbeeld:
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)); } }
Laten we een diagram bekijken dat uitlegt hoe het werkt en welke objecten zich in de String Pool bevinden.
Hoe vergelijken we de waarden van strings in de String Pool en die erbuiten? Hiervoor biedt Java de methode equals, die de waarden van onze String-objecten vergelijkt in plaats van hun referenties. Laten we een voorbeeldcode bekijken waarin we strings vergelijken met de methode equals in plaats van met ==.
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))); } }
Nu zien we dat we de juiste vergelijking hebben.
Gebruik de methode equals() in plaats van == bij het werken met String.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.