Tệp trống là tệp nguồn Java hợp lệ, nhưng cách nó được xử lý bên trong JVM?Tệp trống là một tệp nguồn Java hợp lệ. Làm thế nào nó được xử lý bên trong JVM?
Trả lời
javac sản xuất *.class
tệp cho mỗi tệp xuất hiện trong tệp .java
. Vì vậy, không ai trong số họ, trình biên dịch chỉ làm gì. Không có gì cho một jvm.
Không có mối quan hệ một-một giữa các tệp .java và .class. Những gì bạn có là mối quan hệ một đối một giữa các lớp (hoặc khai báo lớp học) và .class-files.
Một tập tin Java mã nguồn với zero đẳng cấp tờ khai sẽ không dẫn đến bất kỳ .class
file, vì vậy nó không thực sự xử lý bởi JVM ở tất cả.
$ touch Test.java
$ ls
Test.java
$ javac Test.java
$ ls
Test.java
Trong ngôn ngữ Java Specification một file Java mã nguồn là từ đồng nghĩa với một đơn vị Compilation. Phần có liên quan trong JLS là 7.3 Compilation Units.
Ngữ pháp được mô tả như sau:
CompilationUnit:
PackageDeclaration opt ImportDeclarations opt TypeDeclarations opt
...
Các opt -subscript nói rằng một phần là tùy chọn. Vì TypeDeclarations là tùy chọn, không cần khai báo lớp nào.
Tệp nguồn trống sẽ không tạo tệp lớp, do đó không có gì để JVM "xử lý". Và một tệp lớp trống (mà không phải là một cái gì đó trình biên dịch sẽ tạo ra) là không hợp lệ, có thể dẫn đến một ClassFormatError hoặc một cái gì đó như thế, nếu đó là câu hỏi của bạn.
cảm ơn các bạn vì câu trả lời .. – srini
- 1. PHP được xử lý "0" là trống?
- 2. Khi nào tệp JVM giải nén tệp jar của Java?
- 3. Tạo tên tệp hợp lệ trong Java
- 4. Xử lý các tệp lớn trong java
- 5. Xử lý ngoại lệ được quản lý cuối cùng trong tệp thực thi hỗn hợp/gốc được quản lý?
- 6. Xử lý ngoại lệ và mở tệp?
- 7. Làm cách nào để xử lý các tệp không đầy đủ? Nhận ngoại lệ
- 8. Số không bao giờ là một xử lý hợp lệ?
- 9. Xử lý ngoại lệ IO trong khi ghi tệp bằng java
- 10. Xử lý một phần tệp bằng bộ tiền xử lý
- 11. Xử lý ngoại lệ trong một ứng dụng web Java
- 12. Trong ASP.NET làm thế nào để xác định/xử lý các trường hợp ngoại lệ 404?
- 13. Git - xử lý tên tệp mã hóa hỗn hợp
- 14. Làm thế nào để kết hợp khai thác gỗ với một chuỗi xử lý ngoại lệ?
- 15. Hai người, đồng thời chỉnh sửa cùng một tệp được xử lý như thế nào?
- 16. Làm thế nào để xem mã nguồn bên trong một tệp JAR?
- 17. Làm thế nào là MyBatis xử lý một tập kết quả trống?
- 18. Phương thức xử lý ngoại lệ Java
- 19. Làm thế nào để xử lý một đối số cú pháp hợp lệ nhưng hợp lệ không hợp lệ được truyền cho hàm tạo?
- 20. Bytecode là gì và JVM xử lý chúng như thế nào
- 21. Cách xử lý ~ trong đường dẫn tệp
- 22. powershell 2.0 tệp chuyển hướng xử lý ngoại lệ
- 23. MATLAB xử lý thay đổi tệp khi tệp đang được thực thi như thế nào?
- 24. Làm cách nào để xử lý tệp bộ nhớ cache?
- 25. Xử lý vấn đề ngoại lệ chưa được xử lý
- 26. Làm thế nào để kiểm soát miễn phí bên trong xử lý sự kiện của nó?
- 27. Làm thế nào để JVM và Java thực hiện việc đọc và ghi vào các tệp?
- 28. Làm thế nào để bạn xử lý dữ liệu R bên trong một gói?
- 29. Làm thế nào để vô hiệu hóa hậu xử lý cho các tệp pdf trong Paperclip?
- 30. Tiện ích của tệp C++ trống là gì?
Tôi làm trống tệp '.java' (có mã nguồn dẫn đến tệp' .class') và chỉ đặt một nhận xét bên trong (không có gì ngoài chỉ là nhận xét). Ngay sau khi tôi lưu nó trong Eclipse, tệp '.class' biến mất. Tôi nghĩ rằng nó sẽ cho một lỗi, nhưng nó không. Cảm ơn lời giải thích này. * Bạn càng biết nhiều:) * – ADTC