Tôi đã làm việc trên Java
từ hơn 8 năm.Kiến trúc nội bộ của trình biên dịch Java
Tuần trước, trong một cuộc họp nhỏ trong công ty của tôi, một trong những đồng nghiệp của tôi đã hỏi tôi chính xác làm thế nào để Java Compiler
hoạt động? Tôi không có câu trả lời.
Tôi đã thử giải thích, như Java Compiler nhận từng câu một và chuyển đổi chúng thành mã byte không được nhắm mục tiêu đến bất kỳ OS
nào nhưng đến JVM
.
Không ai hài lòng với câu trả lời đó ngay cả tôi.
Bây giờ câu hỏi chính là cách trình biên dịch java hoạt động chính xác. tức là có bao nhiêu bước hoặc giai đoạn hoặc giai đoạn sẽ được trình biên dịch thực hiện trong trường hợp biên dịch tệp Java
.
Kiến trúc Java's compiler
chính xác là gì?
Điều gì xảy ra nếu có nhiều Java classes
trong cùng một tệp .java. Sau đó bao nhiêu lớp sẽ được biên dịch.
Điều gì xảy ra nếu có nhập khẩu trỏ đến các lớp Java chưa được biên dịch? Sau đó, các lớp chưa biên dịch được biên soạn hoặc bỏ qua?
Tôi googled trong hơn nửa ngày và tất cả đều cung cấp câu trả lời giống như tôi đã cung cấp cho đồng nghiệp của mình.
Nhưng cuối cùng tôi đã tìm thấy một số hướng dẫn hữu ích here.
Nhưng hướng dẫn cũng bao gồm không quá sâu và tôi không thể hình dung hướng dẫn đó.
Tôi vẫn không hài lòng và mong muốn tìm hiểu thêm về điều này từ bạn.
Vì vậy, nếu có ai biết điều gì đó hơn tôi và blog ở trên, một cái gì đó bằng cách sử dụng mà tôi có thể hình dung chính xác cấu trúc nội bộ của Java Compiler
, hãy giải thích cho tôi.
Đặc tả JVM khá chi tiết: https://docs.oracle.com/javase/specs/jvms/se8/html/index.html –
[Làm thế nào để biên dịch java chính xác diễn ra] (http: // stackoverflow. com/questions/3406942/how-exact-does-java-compilation-take-place). – YoungHobbit
[Máy ảo Java] (https://www.artima.com/insidejvm/ed2/jvmP.html). – YoungHobbit