Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Strängpool, Metod Equals() | Sträng
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Java-Grunder

bookSträngpool, Metod Equals()

Metoden equals()

Denna metod används för att jämföra objekt och används ofta med String-objekt. Nedan följer ett exempel där två identiska strängvariabler skapas och jämförs 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 är false eftersom == jämför objektreferenser, inte deras faktiska värden. Även om båda strängarna innehåller "string", är de olika objekt i minnet och skapas utanför String pool.

String pool

String pool är en del av heap-minnet där stränglitteraler lagras. När du skapar strängar med samma värde med hjälp av litteraler refererar de till samma objekt i minnet.

Varför fick vi då false? Eftersom vi kringgick string pool genom att använda new String("string"), vilket skapar ett nytt objekt i minnet. När du använder String first = "string"; placeras strängen i string pool och kan delas.

Låt oss titta på ett kodexempel:

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)); } }

Låt oss titta på ett diagram som förklarar hur det fungerar och vilka objekt som finns i String Pool.

Hur jämför vi värdena på strängar i String Pool och de utanför den? För detta ändamål tillhandahåller Java metoden equals, som jämför värdena på våra String-objekt istället för deras referenser. Låt oss titta på ett exempel där vi jämför strängar med hjälp av metoden equals istället för ==.

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))); } }

Nu kan vi se att vi har den korrekta jämförelsen.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

bookSträngpool, Metod Equals()

Svep för att visa menyn

Metoden equals()

Denna metod används för att jämföra objekt och används ofta med String-objekt. Nedan följer ett exempel där två identiska strängvariabler skapas och jämförs 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 är false eftersom == jämför objektreferenser, inte deras faktiska värden. Även om båda strängarna innehåller "string", är de olika objekt i minnet och skapas utanför String pool.

String pool

String pool är en del av heap-minnet där stränglitteraler lagras. När du skapar strängar med samma värde med hjälp av litteraler refererar de till samma objekt i minnet.

Varför fick vi då false? Eftersom vi kringgick string pool genom att använda new String("string"), vilket skapar ett nytt objekt i minnet. När du använder String first = "string"; placeras strängen i string pool och kan delas.

Låt oss titta på ett kodexempel:

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)); } }

Låt oss titta på ett diagram som förklarar hur det fungerar och vilka objekt som finns i String Pool.

Hur jämför vi värdena på strängar i String Pool och de utanför den? För detta ändamål tillhandahåller Java metoden equals, som jämför värdena på våra String-objekt istället för deras referenser. Låt oss titta på ett exempel där vi jämför strängar med hjälp av metoden equals istället för ==.

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))); } }

Nu kan vi se att vi har den korrekta jämförelsen.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 7
some-alt