Cho phép giả định sau lớp học định nghĩa:Lớp Java có được khởi tạo bởi chuỗi sử dụng nó lần đầu tiên không?
public class A {
public final static String SOME_VALUE;
static {
SOME_VALUE = "some.value";
}
}
public class B {
private final String value = A.SOME_VALUE;
}
Giả sử rằng lớp A đã không được nạp chưa, những gì xảy ra khi đối tượng của lớp B được khởi tạo bởi một số chủ đề T? Lớp A phải được nạp và khởi tạo trước. Nhưng câu hỏi của tôi là: nếu nó được thực hiện trong bối cảnh của chủ đề T, hay đúng hơn là trong ngữ cảnh của một số chủ đề khác (đặc biệt) "trình nạp lớp"?
Tôi tin rằng từ JDK7 bạn có thể có hai lớp học từ cùng một trình nạp lớp khởi tạo cùng một lúc. –
@Tom Nhưng điều đó có gây ra vấn đề không, ví dụ: nếu bằng phương thức equals, tôi đặt this.getClass() == obj.getClass() – saugata
Mỗi lớp riêng lẻ sẽ được khởi tạo một lần, nhưng có thể có nhiều lớp khác nhau trong cùng một trình nạp lớp được khởi tạo cùng một lúc. Điều này hiện không thể xảy ra do khóa được ghi chú trong câu trả lời của bạn. (Tôi nghĩ rằng điều này là đúng.) –