Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Пул Рядків, Метод Equals() | Рядок
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Основи Java

bookПул Рядків, Метод Equals()

Метод equals()

Цей метод використовується для порівняння об'єктів і часто застосовується з об'єктами String. Розглянемо приклад створення двох однакових змінних рядка та їх порівняння за допомогою ==:

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

Результат — false, оскільки оператор == порівнює посилання на об'єкти, а не їх фактичні значення. Хоча обидва рядки містять "string", це різні об'єкти в пам'яті, створені поза String pool.

String pool

String Pool — це частина heap-пам'яті, де зберігаються літерали рядків. Якщо створювати рядки з однаковим значенням за допомогою літералів, вони посилаються на один і той самий об'єкт у пам'яті.

Чому ж ми отримали false? Тому що ми обійшли string pool, використовуючи new String("string"), що створює новий об'єкт у пам'яті. Якщо використовувати String first = "string";, рядок розміщується у string pool і може бути спільно використаний.

Розглянемо приклад коду:

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

Розгляньмо схему, яка пояснює, як це працює та які об'єкти знаходяться у String Pool.

Як порівнювати значення рядків у String Pool та поза ним? Для цього Java надає метод equals, який порівнює значення об'єктів String, а не їх посилання. Розгляньмо приклад коду, де ми порівнюємо рядки за допомогою методу equals замість ==.

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

Тепер ми бачимо, що маємо правильне порівняння.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

bookПул Рядків, Метод Equals()

Свайпніть щоб показати меню

Метод equals()

Цей метод використовується для порівняння об'єктів і часто застосовується з об'єктами String. Розглянемо приклад створення двох однакових змінних рядка та їх порівняння за допомогою ==:

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

Результат — false, оскільки оператор == порівнює посилання на об'єкти, а не їх фактичні значення. Хоча обидва рядки містять "string", це різні об'єкти в пам'яті, створені поза String pool.

String pool

String Pool — це частина heap-пам'яті, де зберігаються літерали рядків. Якщо створювати рядки з однаковим значенням за допомогою літералів, вони посилаються на один і той самий об'єкт у пам'яті.

Чому ж ми отримали false? Тому що ми обійшли string pool, використовуючи new String("string"), що створює новий об'єкт у пам'яті. Якщо використовувати String first = "string";, рядок розміщується у string pool і може бути спільно використаний.

Розглянемо приклад коду:

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

Розгляньмо схему, яка пояснює, як це працює та які об'єкти знаходяться у String Pool.

Як порівнювати значення рядків у String Pool та поза ним? Для цього Java надає метод equals, який порівнює значення об'єктів String, а не їх посилання. Розгляньмо приклад коду, де ми порівнюємо рядки за допомогою методу equals замість ==.

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

Тепер ми бачимо, що маємо правильне порівняння.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 5. Розділ 7
some-alt