Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khác biệt giữa length và length() trong Java

length là biến instance (instance variable) của mảng (array) trong Java, trong khi length() là phương thức của lớp String.

length (biến mảng)

  • Array là object chứa số lượng cố định giá trị cùng kiểu.
  • length trả về số phần tử của mảng.
  • Sau khi khởi tạo mảng, length không thay đổi, nên truy cập trực tiếp biến này.
  • Chỉ dùng cho array.

Ví dụ length mảng

public class ArrayLengthTest { 
    public static void main(String args[]) { 
        int array[] = {1, 2, 3, 4, 5, 6, 7}; 
        System.out.println("Length of an array is: " + array.length); 
    } 
}

Kết quả

Length of an array is: 7

length() (phương thức String)

  • length() là phương thức của lớp String.
  • Trả về số ký tự trong string object.
  • String dùng phương thức vì độ dài có thể thay đổi qua các thao tác trên object.
  • String nội bộ dùng char[] array nhưng không expose ra ngoài.

Ví dụ length() String

public class StringLengthMethodTest { 
    public static void main(String args[]) { 
        String str = "Welcome to Tutorials Point"; 
        System.out.println("Length of String using length() method is: " + str.length()); 
    } 
}

Kết quả

Length of String using length() method is: 26

Bảng so sánh tóm tắt

Đặc điểmlength (array)length() (String)
Bản chấtInstance variable (field)Method
Áp dụng choArray (mảng)String, CharSequence, StringBuilder, StringBuffer
Gọiarray.length (không ngoặc)str.length() (có ngoặc)
Thay đổi đượcKhông (fixed sau new)Không (String immutable), nhưng StringBuilder có thể
Compile-time checkCóCó

Mở rộng

  • Collection.size() cho List, Set, Map.
  • StringBuilder.length(), StringBuffer.length() – độ dài hiện tại của buffer.
  • String.codePointCount() – số Unicode code points (khác length() với surrogate pairs).