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ểm | length (array) | length() (String) |
|---|---|---|
| Bản chất | Instance variable (field) | Method |
| Áp dụng cho | Array (mảng) | String, CharSequence, StringBuilder, StringBuffer |
| Gọi | array.length (không ngoặc) | str.length() (có ngoặc) |
| Thay đổi được | Không (fixed sau new) | Không (String immutable), nhưng StringBuilder có thể |
| Compile-time check | Có | 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).