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:
- Jak stworzyć ciąg?
- Co to jest pula ciągów w Javie?
- Jak działa pula ciągów w Javie?
- Schemat przepływu
- Program Java dla puli String
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
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.