Jaka jest koncepcja String Pool w Javie?



Pula ciągów w Javie to pula ciągów przechowywanych w pamięci sterty Java. Ten samouczek pomoże Ci w szczegółowym podejściu do puli ciągów Java z przykładami.

Czy słyszałeś o tym terminie „Pula ciągów w Javie?” Cóż, jeśli nie, wylądowałeś we właściwym miejscu. Pula ciągów w Javie to pula ciągów przechowywana w plikach Pamięć sterty. Przyjrzyjmy się nieco głębiej i zrozummy szczegółowo tę koncepcję puli ciągów Java.

W tym artykule zostaną omówione następujące wskazówki:





Zaczynajmy!

Przede wszystkim zrozummy, jak dokładnie tworzony jest obiekt typu string!



Jak stworzyć ciąg?

Aby utworzyć obiekt String w Javie, istnieją dwa sposoby:

  • Korzystanie z nowego operatora. Na przykład,
Ciąg s1 = nowy ciąg ('Joey')
  • Używanie literału ciągu lub wyrażenia stałego. Na przykład,
String s1 = 'Joey' (literał ciągu) lub String s1 = 'Joe' + 'y' (wyrażenie stałe w postaci ciągu)

Co to jest ta pula ciągów, o której mówię i jak jest z tym związane tworzenie łańcucha w Javie. Pozwól mi pozbyć się bałaganu!

Co to jest pula ciągów w Javie?

String Pool to obszar przechowywania w stercie Java.



Alokacja ciągów, jak wszystkie alokacja obiektów , okazuje się kosztowną sprawą zarówno w przypadku czasu, jak i pamięci. JVM wykonuje pewne kroki podczas inicjowania literałów łańcuchowych, aby zwiększyć wydajność i zmniejszyć narzut pamięci. Aby zmniejszyć liczbę obiektów String tworzonych w maszynie JVM, klasa String przechowuje pulę ciągów.

Za każdym razem, gdy tworzony jest literał ciągu, rozszerzenie JVM najpierw sprawdza pulę literałów ciągów. Jeśli ciąg już istnieje w puli ciągów, zostanie zwrócone odwołanie do instancji w puli. Jeśli ciąg nie istnieje w puli, inicjowany jest nowy obiekt String i umieszczany w puli.

Po teoretycznym zapoznaniu się z koncepcją, powiem ci, jak działa pula ciągów w Javie krok po kroku za pomocą prostych instancji!

jaki pomysł użyć dla java

Jak działa pula ciągów w Javie?

Kiedy tworzysz nowy ciąg w ten sposób:

Ciąg s1 = „Rachel”

JVM automatycznie sprawdza, czy ta sama wartość istnieje w puli stałych łańcuchowych, czy nie.

  • jeśli tak, zajmuje już istniejącą wartość.
  • Jeśli nie, sam tworzy nowy ciąg i dodaje go do puli ciągów.

Jeśli chcesz zatrzymać to zachowanie, utwórz ciąg przy użyciu operatora new:

Ciąg s1 = nowy ciąg („Rachel”)

Teraz, jeśli chcesz dodać ten ciąg do , Java udostępnia metodę o nazwie intern (), którą można wywołać natywną metodę intern () w następujący sposób:

S1.intern ()

Teraz pokażę Ci implementację i działanie puli ciągów na przykładzie.

Ale wcześniej krótkie przypomnienie!

Jak wiesz, jeśli porównujesz 2 obiekty za pomocą operatora ==, porównuje on adresy w pamięci.

Porównamy więc ciągi za pomocą ==, aby mieć całkowitą pewność, że jest to ten sam obiekt, czy nie.

Przejdźmy teraz do naszego procesu wdrażania.

Pula ciągów w Javie: Diagram przepływu

Basen strunowy - Edureka

Przyjrzyjmy się teraz krok po kroku, co dzieje się tutaj:

  • Klasa jest ładowana, gdy jest wywoływana.
  • JVM szuka w programie wszystkich literałów łańcuchowych
  • Najpierw znajduje zmienną s1, która odnosi się do literalnego „Apple” i zostaje utworzona w pamięci
  • Odniesienie do literału „Apple” jest następnie umieszczane w pamięci puli stałej łańcuchowej.
  • Następnie znajduje inną zmienną s2, która odnosi się do tego samego literału ciągu „Mango”.
  • Następnie znajduje inną zmienną s3, która odnosi się do literału „Apple”
  • Teraz, gdy maszyna JVM już znalazła ciąg znaków „Apple”, obie zmienne s1 i s3 będą odnosić się do tego samego obiektu, tj. „Apple”.

Program Java dla String Pool

public class StringPoolExperiment {public static void main (String [] args) {String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). intern ( ) System.out.println (s1 == s2) // true System.out.println (s1 == s3) // false System.out.println (s1 == s4) // true}}

Wynik:

Prawdziwe
Fałszywy
Prawdziwe

jest hadoop łatwy do nauczenia

W powyższym przykładzie możesz wyraźnie zobaczyć użycie inicjalizacji łańcucha na wszystkie trzy sposoby, tj

String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). Intern ()

Być może wewnętrzne funkcjonowanie programu powinno być teraz jasne.

W ten sposób dotarłem do końca mojego bloga. Mam nadzieję, że opracowane tutaj treści pomogły Ci w poszerzeniu bazy wiedzy. Będziemy nadal nurkować w świecie Java. Bądźcie czujni!

Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Szkolenie i certyfikacja J2EE i SOA firmy Edureka jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistami Java. Kurs ma na celu zapewnienie przewagi w programowaniu w języku Java i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji Java, a także różnych struktur Java, takich jak Hibernate i Wiosna .

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego bloga „String Pool in Java”, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.