JavaRush /Blog Java /Random-VI /Nghỉ giải lao #105. Tại sao Chuỗi không thể thay đổi tron...

Nghỉ giải lao #105. Tại sao Chuỗi không thể thay đổi trong Java? Giao diện trong Java và đa kế thừa

Xuất bản trong nhóm

Tại sao Chuỗi không thể thay đổi trong Java?

Nguồn: Dev.to Trước khi hiểu tại sao Chuỗi là bất biến trong Java, chúng ta cần suy nghĩ về lý do tại sao chúng ta tạo ra thứ gì đó bất biến? Nghỉ giải lao #105.  Tại sao Chuỗi không thể thay đổi trong Java?  Giao diện trong Java và đa kế thừa - 1Bất biến có nghĩa là một khi đã tạo ra thì chúng ta không thể thay đổi nó. Lý do duy nhất chúng ta có thể nghĩ đến việc tạo ra thứ gì đó bất biến là để đồng bộ hóa khi sử dụng cùng nhau. Đây là lý do tại sao chuỗi là bất biến. Trong Java, các đối tượng String được chia sẻ và lưu trữ trong String Pool. Đó là một vị trí cụ thể trên heap nơi các chuỗi được lưu trữ và chia sẻ giữa nhiều luồng nếu chúng có cùng giá trị. Ví dụ: trong một nhóm chuỗi, nếu đã có một chuỗi có giá trị “test” và chương trình muốn tạo một đối tượng chuỗi khác có cùng giá trị thì nó sẽ nhận được cùng một tham chiếu thay vì tạo một đối tượng chuỗi mới. Bây giờ chúng ta đã biết các chuỗi được lưu trữ trên heap như thế nào. Hãy xem tại sao chúng không thay đổi.
  1. Lý do đầu tiên cho tính bất biến là sự an toàn của luồng. Vì các hàng được chia sẻ giữa nhiều luồng trong nhóm hàng nên chúng tôi cần hạn chế bất kỳ luồng ngẫu nhiên nào có thể thay đổi nó. Bất kỳ thay đổi nào đối với một hàng đều có thể ảnh hưởng đến các luồng khác truy cập vào cùng một hàng. Nếu một luồng muốn cập nhật giá trị của một hàng, nó cần tạo một hàng khác và tham chiếu đến nó.

  2. Thông thường chúng tôi sử dụng String làm khóa trong Map . Nếu chuỗi có thể thay đổi thì bất kỳ ai cũng có thể thay đổi giá trị của chuỗi và chúng ta sẽ mất khóa thực tế.

Giao diện trong Java và đa kế thừa

Nguồn: Dev.to Hãy cùng tìm hiểu đa kế thừa là gì. Đa kế thừa là một tính năng của một số ngôn ngữ lập trình hướng đối tượng trong đó một đối tượng hoặc lớp có thể kế thừa chức năng từ nhiều đối tượng cha hoặc lớp cha. Nghỉ giải lao #105.  Tại sao Chuỗi không thể thay đổi trong Java?  Giao diện trong Java và đa kế thừa - 1Như trong hình trên, một lớp con đa kế thừa có thể có hai hoặc nhiều lớp cơ sở, nhưng để đạt được điều này, chúng ta cần một giao diện.

Giao diện

Giao diện trong Java là bản thiết kế của một lớp. Nó có các hằng số tĩnh và các phương thức trừu tượng. Nghĩa là, một giao diện chỉ có thể chứa các phương thức và biến trừu tượng, nó không thể có phần thân phương thức. Nó không thể được tạo theo cách giống như một lớp trừu tượng.

Vậy chúng ta khai báo nội dung của các phương thức này ở đâu?

Phần thân của phương thức được khai báo bên trong lớp nơi phương thức đó được yêu cầu theo yêu cầu của người lập trình.

Làm thế nào để khai báo một giao diện?

Một giao diện có thể được khai báo bằng từ khóa giao diện . Cú pháp:

interface interface_name {abstract methods}

Ghi chú

Để sử dụng giao diện được khai báo trong một lớp, chúng ta phải sử dụng từ khóa cụ thể .

Thực hiện?

Đầu tiên chúng ta sẽ tạo một giao diện in và bên trong nó chúng ta sẽ tạo một phương thức print() trừu tượng ;

interface printgib{
void print();
}
Bây giờ chúng ta đã có một giao diện sẵn sàng cho các lớp sử dụng, vì vậy hãy tạo các lớp abcgk và triển khai giao diện trong đó.

public class abc implements printgib{
public void print(){                     //1st implementation of print 
System.out.println("I love you 3000"); 
}
public static void main(String[] args){
abc obj = new abc();
gk obj1 = new gk();
obj.print();
obj1.print();
}
}

class gk implements printgib{
public void print(){                   //2nd implementation of print 
System.out.println("I am Gk");
}
}
Như được hiển thị trong đoạn mã trên, chúng tôi đã đạt được tính đa kế thừa và triển khai một giao diện. Bây giờ để chạy mã, hãy lưu tệp và...

javac file_name.java

java abc

Kết quả:

Nghỉ giải lao #105.  Tại sao Chuỗi không thể thay đổi trong Java?  Giao diện trong Java và đa kế thừa - 2
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION