Vì vậy, tôi đang cố gắng kết hợp quá trình khởi tạo và khởi tạo trong JVM nhưng JLS là một chút ngớ ngẩn về một vài chi tiết, vì vậy nếu có ai đó lo lắng thanh toán bù trừ một số chi tiết, nó sẽ được apreciated . Đây là những gì tôi đã có thể tìm ra cho đến nay.Thứ tự khởi tạo và khởi tạo Java
Khởi
Đệ quy Khởi tạo biến thức tĩnh của lớp và nó giao diện mà là hằng số thời gian biên dịch.
Thoát khỏi các khối tĩnh xử lý đệ quy và các trường tĩnh theo thứ tự văn bản.
õ
Đệ quy Khởi tạo các biến Ví dụ cuối cùng của lớp đó là hằng số thời gian biên dịch.
Thoát khỏi quá trình xử lý đệ quy các khối không tĩnh và trường mẫu trong thứ tự văn bản để thêm chúng vào các hàm tạo khi nó trả về.
Được rồi, vì vậy bây giờ cho các câu hỏi.
là các giao diện được xử lý theo thứ tự khai báo?
là các giao diện được xử lý trong ngăn xếp đệ quy riêng biệt?
a) nếu có, giao diện có được xử lý trước hoặc sau siêu lớp không?
b) nếu có, tôi có đúng khi suy luận rằng một hoặc những người khác (Giao diện hoặc Siêu lớp) nhận các trường liên tục không biên dịch được khởi tạo trước các hằng số biên dịch khác.
Cuộc gọi vai trò nào đối với trình tạo cấu trúc không cố định() trong quá trình này?
Tôi có nhầm lẫn với bất kỳ kết luận nào của mình không?
Tôi có thiếu bất kỳ chi tiết chính nào khác không?
Giao diện không có gì để khởi tạo. Trừ khi bạn đang sử dụng từ ngữ trong một thời trang khác với tôi đã từng sử dụng. –
@BobDalgleish Giao diện có thể có các trường cuối cùng tĩnh công cộng. Nếu các trường đó là đối tượng có bộ khởi tạo (ví dụ: 'public static final ArrayList someStrings = new ArrayList <>();') thì đó sẽ là một phần của quá trình khởi tạo. –
hexafraction