Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa biến tĩnh và biến không tĩnh trong Java

Một biến cung cấp cho chúng tôi bộ nhớ được đặt tên mà chương trình của chúng tôi có thể thao tác. Mỗi biến trong Java có một kiểu cụ thể, xác định kích thước và cách bố trí bộ nhớ của biến; phạm vi giá trị có thể được lưu trữ trong bộ nhớ đó; và tập hợp các thao tác có thể được áp dụng cho biến.

Biến tĩnh

Biến tĩnh còn được gọi là biến lớp và phổ biến trên các đối tượng của lớp và biến này cũng có thể được truy cập bằng cách sử dụng tên lớp.

Biến không tĩnh

Bất kỳ biến nào của một lớp không phải là biến tĩnh được gọi là biến không tĩnh hoặc biến thể hiện.

Sau đây là những điểm khác biệt quan trọng giữa biến tĩnh và biến không tĩnh.

Sr. Không.
Phím
Tĩnh
Không tĩnh
1
Quyền truy cập
Một biến tĩnh có thể được truy cập bởi các thành viên tĩnh cũng như các hàm thành viên không tĩnh.
Một biến không tĩnh không thể được truy cập bởi các hàm thành viên tĩnh.
2
Chia sẻ
Một biến tĩnh hoạt động như một biến toàn cục và được chia sẻ giữa tất cả các đối tượng của lớp.
Một biến không tĩnh dành riêng cho đối tượng cá thể mà chúng được tạo.
3
Cấp phát bộ nhớ
Các biến tĩnh chiếm ít không gian hơn và việc cấp phát bộ nhớ diễn ra một lần.
Một biến không tĩnh có thể chiếm nhiều dung lượng hơn. Phân bổ bộ nhớ có thể xảy ra tại thời điểm chạy.
4
Từ khóa
Một biến tĩnh được khai báo bằng từ khóa static.
Một biến bình thường không bắt buộc phải có bất kỳ từ khóa đặc biệt nào.

Ví dụ về biến tĩnh so với biến không tĩnh

JavaTester.java

public class JavaTester {
   public int counter = 0;
   public static int staticCounter = 0;
   public JavaTester(){
      counter++;
      staticCounter++;
   }
   public static void main(String args[]) {
      JavaTester tester = new JavaTester();
      JavaTester tester1 = new JavaTester();
      JavaTester tester2 = new JavaTester();
      System.out.println("Counter: " + tester2.counter);
      System.out.println("Static Counter: " + tester2.staticCounter);
   }
}

Đầu ra

Counter: 1
Static Counter: 3