classloaders Java Gần đây đã được xúc động và bất ngờ nhận ra rằng không hoàn toàn hiểu những gì xảy ra bước-by-step khi ai đó gọiĐiều gì xảy ra khi chương trình java bắt đầu?
java -jar App.jar
Vâng, tôi đoán
- một trường hợp mới của JVM là tạo ra
- sử dụng Lớp tải để tải lớp chính và các lớp khác
- mã byte được bắt đầu thực hiện từ phương thức main()
Nhưng tôi vẫn cho rằng có rất nhiều điều tôi cần biết thêm về nó.
- Ai và cách quyết định lớp nào sẽ được tải khi khởi động và khi nào cần?
Tôi đã tìm thấy hai câu hỏi liên quan nhưng ở đó không giải thích cách áp dụng điều đó vào thực tế Java.
What happens when a computer program runs?
What happens when you run a program?
Thông số kỹ thuật có thể trợ giúp (ví dụ một chút không thích hợp, do đó nhận xét không phải là câu trả lời): http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.1 – Charlie
Ngoài ra liên kết đó đề cập đến Java VM Spec: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html#jvms-5.2 – Charlie