Khái niệm về String Pool trong java là gì?



Nhóm chuỗi trong Java là một nhóm các Chuỗi được lưu trữ trong Bộ nhớ Heap Java. Hướng dẫn này sẽ giúp bạn cách tiếp cận chi tiết với Java String Pool với các ví dụ.

Bạn đã nghe về thuật ngữ này chưa 'Nhóm chuỗi trong Java?' Nếu không, bạn đã hạ cánh đúng nơi. Nhóm chuỗi trong Java là một nhóm các chuỗi được lưu trữ trong Bộ nhớ đống. Hãy cùng chúng tôi tìm hiểu sâu hơn một chút và hiểu chi tiết khái niệm về Java String pool này.

Các gợi ý sau sẽ được thảo luận trong bài viết này:





Hãy bắt đầu nào!

Trước hết, chúng ta hãy hiểu chính xác một đối tượng chuỗi được tạo ra như thế nào!



Làm thế nào để tạo một chuỗi?

Để tạo một đối tượng String trong Java, có hai cách:

  • Sử dụng toán tử mới. Ví dụ,
String s1 = new String ('Joey')
  • Sử dụng một chuỗi ký tự hoặc biểu thức hằng số. Ví dụ,
String s1 = 'Joey' (string đen) hoặc String s1 = 'Joe' + 'y' (chuỗi hằng số)

Bây giờ, nhóm chuỗi này là gì mà tôi đang nói đến và việc tạo chuỗi trong Java liên quan đến điều này như thế nào. Hãy để tôi cắt giảm sự lộn xộn!

tìm giá trị cao nhất trong mảng java

String Pool trong Java là gì?

String Pool là một vùng lưu trữ trong Java heap.



Phân bổ chuỗi, giống như tất cả phân bổ đối tượng , chứng tỏ là một việc tốn kém trong cả hai trường hợp thời gian và trí nhớ. JVM thực hiện một số bước trong khi khởi tạo các ký tự chuỗi để tăng hiệu suất và giảm chi phí bộ nhớ. Để giảm số lượng đối tượng String được tạo trong JVM, lớp String giữ một nhóm các chuỗi.

Mỗi khi một chuỗi ký tự được tạo, JVM kiểm tra nhóm ký tự chuỗi trước tiên. Nếu chuỗi đã tồn tại trong nhóm chuỗi, một tham chiếu đến cá thể được gộp sẽ trả về. Nếu chuỗi không tồn tại trong nhóm, một đối tượng Chuỗi mới sẽ khởi tạo và được đặt trong nhóm.

Sau khi tìm hiểu khái niệm về mặt lý thuyết, hãy để tôi cho bạn biết cách một nhóm chuỗi hoạt động trong Java từng bước với sự trợ giúp của các trường hợp đơn giản!

String pool hoạt động như thế nào trong Java?

Khi bạn tạo một chuỗi mới như thế này:

String s1 = “Rachel”

JVM tự động kiểm tra xem giá trị tương tự có tồn tại trong nhóm hằng chuỗi hay không.

  • nếu có, nó chiếm giá trị hiện có.
  • Nếu không, nó tự tạo một chuỗi mới và thêm nó vào nhóm chuỗi.

Nếu bạn muốn dừng hành vi này, hãy tạo một chuỗi bằng toán tử mới:

Chuỗi s1 = Chuỗi mới (“Rachel”)

Bây giờ, nếu bạn sẵn sàng thêm chuỗi này vào , Java cung cấp cho bạn một phương thức được gọi là, phương thức intern () bạn có thể gọi phương thức native intern () như sau:

S1.intern ()

Bây giờ, tôi sẽ chỉ cho bạn cách triển khai và hoạt động của string pool thông qua một ví dụ.

Nhưng trước đó, một lời nhắc ngắn!

Như bạn biết nếu bạn đang so sánh 2 đối tượng bằng toán tử ==, nó sẽ so sánh các địa chỉ trong bộ nhớ.

bằng thạc sĩ là bằng sau đại học

Vì vậy, chúng tôi sẽ so sánh các chuỗi bằng cách sử dụng == để hoàn toàn chắc chắn rằng nó có phải là cùng một đối tượng hay không.

Bây giờ, hãy bắt đầu quá trình triển khai của chúng tôi.

xin vui lòng sql cho người mới bắt đầu với các ví dụ

Nhóm chuỗi trong Java: Sơ đồ luồng

Hồ bơi chuỗi - Edureka

Bây giờ chúng ta hãy nắm bắt những gì xảy ra ở đây từng bước:

  • Lớp được tải khi Được gọi.
  • JVM tìm kiếm tất cả các ký tự chuỗi trong chương trình
  • Đầu tiên, nó tìm biến s1 đề cập đến chữ “Apple” theo nghĩa đen và nó được tạo trong bộ nhớ
  • Sau đó, một tham chiếu cho chữ “Apple” được đặt trong bộ nhớ nhóm hằng chuỗi.
  • Sau đó, nó tìm thấy một biến s2 khác tham chiếu đến cùng một chuỗi theo nghĩa đen “Mango”.
  • Sau đó, nó tìm thấy một biến s3 khác đề cập đến chữ 'Apple'
  • Bây giờ JVM đã tìm thấy một chuỗi theo nghĩa đen là “Apple”, cả hai biến s1 và s3 sẽ tham chiếu đến cùng một đối tượng, tức là “Apple”.

Chương trình Java cho 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}}

Đầu ra:

Thật
Sai
Thật

Trong ví dụ trên, bạn có thể thấy rõ việc sử dụng khởi tạo chuỗi theo cả ba cách, tức là

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

Hoạt động nội bộ của chương trình có lẽ bây giờ nên rõ ràng.

Với điều này, tôi đã đi đến cuối blog của mình. Tôi hy vọng những nội dung được xây dựng ở đây sẽ giúp bạn mở rộng nền tảng kiến ​​thức của mình. Chúng tôi sẽ tiếp tục đi sâu vào thế giới Java. Giữ nguyên!

Kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo và cấp chứng chỉ về Java J2EE và SOA của Edureka được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Mùa xuân .

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog “Nhóm chuỗi trong Java” này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.