Thursday, March 11, 2021

Tìm hiểu String trong java

 Xin chào mừng các bạn đến với blog lập trình java hôm nay mình sẽ giới thiệu sơ qua cho các bạn về String trong java, đây là một trong những vấn đề thường gặp nhất trong lập trình trong quá trình học cũng như thực tế đi làm ở ngoài.

Tìm hiểu String trong java

Trong Java, về cơ bản chuỗi là một đối tượng đại diện cho chuỗi các giá trị char. Một mảng các ký tự hoạt động giống như chuỗi Java. Ví dụ:

char[] ch={'j','a','v','a','t','p','o','i','n','t'};  

String s=new String(ch); 

Lớp Java String cung cấp rất nhiều phương thức để thực hiện các thao tác trên chuỗi như so sánh (), concat (), equals (), split (), length (), Replace (), CompareTo (), intern (), substring ()  vv.

Lớp java.lang.String triển khai các giao diện Serializable, Comp Compare và CharSequence. 

CharSequence Interface

Giao diện CharSequence được sử dụng để biểu diễn chuỗi ký tự. Các lớp String, StringBufferStringBuilder thực hiện nó. Nó có nghĩa là, chúng ta có thể tạo chuỗi trong java bằng cách sử dụng ba lớp này.

Chuỗi Java là bất biến có nghĩa là nó không thể thay đổi được. Bất cứ khi nào chúng ta thay đổi bất kỳ chuỗi nào, một phiên bản mới sẽ được tạo ra. Đối với các chuỗi có thể thay đổi, bạn có thể sử dụng các lớp StringBuffer và StringBuilder.

Chúng ta sẽ thảo luận về chuỗi bất biến ở phần sau. Đầu tiên chúng ta hãy hiểu String trong Java là gì và cách tạo đối tượng String.

Chuỗi trong java là gì

Nói chung, Chuỗi là một chuỗi các ký tự. Nhưng trong Java, chuỗi là một đối tượng đại diện cho một chuỗi ký tự. Lớp java.lang.String được sử dụng để tạo một đối tượng chuỗi.
Làm thế nào để tạo một đối tượng chuỗi?
Có hai cách để tạo đối tượng Chuỗi:
  • Theo chuỗi ký tự
  • Theo từ khóa mới
String Literal
Chuỗi ký tự Java được tạo bằng cách sử dụng dấu ngoặc kép. Ví dụ:
String s="welcome";  
Mỗi khi bạn tạo một chuỗi ký tự, JVM sẽ kiểm tra "nhóm hằng chuỗi" trước tiên. Nếu chuỗi đã tồn tại trong nhóm, một tham chiếu đến cá thể được gộp sẽ được trả về. Nếu chuỗi không tồn tại trong nhóm, một cá thể chuỗi mới sẽ được tạo và đặt trong nhóm. Ví dụ:
String s1="Welcome";  
String s2="Welcome";
Trong ví dụ trên, chỉ một đối tượng sẽ được tạo. Thứ nhất, JVM sẽ không tìm thấy bất kỳ đối tượng chuỗi nào có giá trị "Chào mừng" trong nhóm hằng chuỗi, đó là lý do tại sao nó sẽ tạo một đối tượng mới. Sau đó, nó sẽ tìm chuỗi có giá trị "Welcome" trong pool, nó sẽ không tạo một đối tượng mới nhưng sẽ trả về tham chiếu đến cùng một thể hiện.

Tại sao Java sử dụng khái niệm chuỗi ký tự?

Để làm cho Java hiệu quả hơn về bộ nhớ (vì không có đối tượng mới nào được tạo nếu nó đã tồn tại trong nhóm hằng chuỗi)

By new keyword

String s=new String("Welcome");
Trong trường hợp đó, JVM sẽ tạo một đối tượng chuỗi mới trong bộ nhớ heap thông thường (không phải nhóm) và chữ "Chào mừng" theo nghĩa đen sẽ được đặt trong nhóm hằng chuỗi. Biến s sẽ tham chiếu đến đối tượng trong một đống (không phải nhóm).
Ví dụ string trong java
public class StringExample{  
public static void main(String args[]){  
String s1="java";//creating string by java string literal  
char ch[]={'s','t','r','i','n','g','s'};  
String s2=new String(ch);//converting char array to string  
String s3=new String("example");//creating java string by new keyword  
System.out.println(s1);  
System.out.println(s2);  
System.out.println(s3);  
}}  
Kết quả:
java
strings
example

No comments:

Post a Comment