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

Sự khác biệt giữa hằng số và biến cuối cùng trong Java?

Hằng số trong Java

Biến hằng là biến có giá trị cố định và chỉ có một bản sao của nó tồn tại trong chương trình. Khi bạn khai báo một biến hằng số và gán giá trị cho nó, bạn không thể thay đổi lại giá trị của nó trong suốt chương trình.

Không giống như trong ngôn ngữ C, hằng số không được hỗ trợ trong Java (trực tiếp). Tuy nhiên, bạn vẫn có thể tạo một hằng số bằng cách khai báo một biến static và final.

  • Khi bạn khai báo một biến static, chúng sẽ được tải vào bộ nhớ tại thời điểm biên dịch, tức là chỉ có một bản sao của chúng.

  • khi bạn khai báo một biến cuối cùng, bạn không thể sửa đổi lại giá trị của nó.

Ví dụ

class Data {
   static final int integerConstant = 20;
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("value of integerConstant: "+Data.integerConstant);
   }
}

Đầu ra

value of integerConstant: 20

Biến cuối cùng trong Java

Khi bạn khai báo một biến cuối cùng, bạn không thể thay đổi giá trị của nó. Nếu bạn cố gắng làm như vậy, lỗi thời gian biên dịch sẽ được tạo ra.

Ví dụ

public class FinalExample {
   public static void main(String args[]) {
      final int num = 200;
      num = 2544;
   }
}

Đầu ra

FinalExample.java:4: error: cannot assign a value to final variable num
   num = 2544;
   ^
1 error

Sự khác biệt chính giữa biến cuối cùng và một hằng số (tĩnh và cuối cùng) là nếu bạn tạo một biến cuối cùng mà không có từ khóa static, mặc dù giá trị của nó là không thể sửa đổi, một bản sao riêng của biến sẽ được tạo mỗi khi bạn tạo một đối tượng mới. Trong đó một hằng số không thể sửa đổi được và chỉ có một bản sao thông qua chương trình. Ví dụ:hãy xem xét chương trình Java sau,

Ví dụ

class Data {
   final int integerConstant = 20;
}
public class ConstantExample {
   public static void main(String args[]) {
      Data obj1 = new Data();
      System.out.println("value of integerConstant: "+obj1.integerConstant);
      Data obj2 = new Data();
      System.out.println("value of integerConstant: "+obj2.integerConstant);
   }
}

Đầu ra

value of integerConstant: 20
value of integerConstant: 20

Ở đây, chúng tôi đã tạo một biến cuối cùng và cố gắng in giá trị của nó bằng hai đối tượng, giá trị suy nghĩ của biến là giống nhau ở cả hai trường hợp, vì chúng tôi đã sử dụng một đối tượng khác nhau cho mỗi đối tượng đó là bản sao của biến thực tế.

Theo định nghĩa của hằng, bạn cần có một bản sao duy nhất của biến trong suốt chương trình (lớp).

Do đó, để tạo hằng như định nghĩa pert, bạn cần khai báo nó cả tĩnh và cuối cùng.