Tìm Hiểu Về đối Tượng String Trong Java | TopDev
Có thể bạn quan tâm
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh
Đối tượng String, được định nghĩa trong package java.lang, là một đối tượng cơ bản trong Java. Các bạn sẽ sử dụng nó thường xuyên và là một đối tượng không thể thiếu đối với tất cả chúng ta khi lập trình với Java. Trong bài viết này, mình sẽ trình bày với các bạn sâu hơn về đối tượng String này để các bạn hiểu rõ thêm về nó các bạn nhé!
Khởi tạo đối tượng String
Chúng ta có nhiều cách để khởi tạo một đối tượng String, đó là:
– Sử dụng toán tử new
Ví dụ:
String a = new String("Khanh");– Sử dụng toán tử gán (“=”)
Ví dụ:
String b = "Khanh";– Khai báo trong dấu nháy kép
Ví dụ:
System.out.println("Khanh");Sự khác nhau giữa các cách khai báo trên, đó là:
Nếu các bạn khai báo đối tượng String sử dụng toán tử new thì Java sẽ tạo ra những đối tượng Java riêng biệt, lưu trữ ở những vị trí khác nhau trong bộ nhớ.
Do đó, khi các bạn so sánh những đối tượng này sử dụng toán tử quan hệ (“==”) thì kết quả sẽ là false. Hãy xem ví dụ sau nhé các bạn:
package com.huongdanjava.javaexample; public class Example { public static void main(String[] args) { String a = new String("Khanh"); String b = new String("Khanh"); System.out.println(a == b); } }Kết quả:
Nếu các bạn khởi tạo đối tượng String bằng cách sử dụng toán tử gán (“=”) thì khi so sánh những đối tượng này sử dụng toán tử quan hệ (“==”) thì kết quả sẽ là true.
Hãy xem xét ví dụ sau nhé các bạn:
package com.huongdanjava.javaexample; public class Example { public static void main(String[] args) { String a = "Khanh"; String b = "Khanh"; System.out.println(a == b); } }Kết quả:
Nguyên nhân là do đâu các bạn? Đó là bởi vì khi bạn khởi tạo biến String a với nội dung là “Khanh” sử dụng toán tử gán (“=”) thì Java sẽ tạo một chuỗi “Khanh” được lưu trữ ở một vị trí xác định trong bộ nhớ gọi là String pool. Khi các bạn tạo các biến String khác cũng cùng nội dung là “Khanh”, thì Java sẽ trả về chuỗi ký tự “Khanh” đã được tạo ra trước đó trong String pool. Và do đó, khi các bạn so sánh những đối tượng như thế này, kết quả sẽ luôn là true.
Đối với trường hợp thứ ba thì cũng giống như trường hợp thứ hai, khi so sánh những String được khai báo trong dấu ngoặc kép bằng toán tử quan hệ (“==”) kết quả sẽ luôn luôn true.
Hãy xem xét ví dụ sau nhé:
package com.huongdanjava.javaexample; public class Example { public static void main(String[] args) { System.out.println("Khanh" == "Khanh"); } }Kết quả:
Khái niệm Immutable trong String
Làm việc với String, các bạn sẽ gặp khái niệm Immutable. Vậy Immutable là gì? Mình sẽ nói ngay: Immutable là khái niệm để chỉ những đối tượng mà nội dung hay trạng thái của nó không thể bị thay đổi bởi bất cứ đối tượng nào khác.
String là một đối tượng Immutable như thế!
Vậy làm thế nào String có thể là một đối tượng Immutable, mình xin trình bày như sau:
– String lưu trữ giá trị của nó trong một biến mảng với kiểu dữ liệu char. Biến mảng này được định nghĩa với access modifier là private.
– Biến mảng này được khai báo với từ khóa final. Như các bạn đã biết, nếu một biến được định nghĩa với từ khóa final thì nó chỉ được khởi tạo một lần duy nhất.
– Không một phương thức nào trong đối tượng String thao tác với biến mảng này.
Chi tiết, các bạn có thể xem thêm tại đây.
Bài viết gốc được đăng tải tại huongdanjava.com
Có thể bạn quan tâm:
- Class trong Java là gì? Object trong Java là gì?
- Cùng tìm hiểu về Stream trong Java 8
- Java Reflection là gì? Hướng dẫn Java Reflection API
Xem thêm Việc làm Java lương cao hấp dẫn trên TopDev
Từ khóa » Thư Viện String Trong Java
-
String Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Chuỗi String Trong Java
-
Thư Viện Xử Lý Chuỗi Trong Java
-
Chuỗi (String) Trong Java - Freetuts
-
String Trong Java - STDIO
-
Học Thao Tác Với String Trong Java Qua Các Ví Dụ
-
Java: Hàm Xử Lý Chuỗi (String) | V1Study
-
String Trong Java - Chuỗi Và Các Phương Thức Chuỗi Trong Java
-
Bài 21: String Trong Java - Lập Trình Java Cơ Bản
-
String Trong Ngôn Ngữ Java - Lập Trình Không Khó
-
Bài 7.2. Thư Viện String.h Và Các Hàm Xử Lý Chuỗi (String) Trong Lập ...
-
Tổng Hợp Bài Tập String Trong Java - Có Lời Giải - Deft Blog
-
Chuỗi Trong Java - Java Strings - Lập Trình Từ Đầu
-
Sự Khác Biệt Chính Xác Giữa CharSequence Và String Trong Java