Khi tôi biên soạn một tệp java rỗng, nó không tạo ra bất kỳ tệp lớp nào. Vì vậy, muốn biết trình biên dịch phản ứng như thế nào khi biên dịch một tệp java rỗng. Nó nên đã tạo ra một tập tin lớp học trống trong này, tại sao nó không?Điều gì sẽ xảy ra nếu bạn biên dịch một tệp java rỗng?
Trả lời
javac
bắt đầu, thấy không có lớp nào được khai báo trong tệp và kết thúc. Để tạo một tệp .class
, bạn phải khai báo lớp trong tệp.
Vì vậy, liều nó có nghĩa là một trình biên dịch thành công mà không có lỗi? – user55924
Nếu tệp hoàn toàn trống và chỉ được gọi là .java thì không có gì để trình biên dịch thực hiện khi bạn cố gắng tạo tệp lớp. Nếu bạn có một phân khúc
class Foo {
}
trong file java sau đó một tập tin calss rỗng (Foo.class) sẽ được tạo
Vâng cho rằng một file Java có thể là như thế này:
// Foo.java
class Bar
{
}
Làm cách nào để biết điều gì sẽ gọi là gì? Ngoài ra nó nên làm cho nó một lớp học hoặc một giao diện hoặc một enum?
Thay vì thực hiện lựa chọn cho bạn, nó không có gì (tôi có thể đã mong đợi một lỗi chính mình ... nhưng không có gì là một điều lành mạnh để làm là tốt).
Các tệp .java hầu như trống. Được sử dụng cho chú thích gói, do đó, không làm gì với tệp nguồn trống có ý nghĩa hơn một chút so với xử lý lỗi dưới dạng lỗi. Xem http: //java.sun.com/docs/books/jls/third_edition/html/packages.html # 7.4.1.1 –
gói chưa đặt tên sẽ thực sự trống rỗng ... – TofuBeer
Hầu hết các câu trả lời đều nói rằng tệp lớp không phải là tệp java được biên dịch mà là biểu diễn nhị phân của một lớp.
Việc biên dịch tệp java có thể dẫn đến hai tệp lớp nếu tệp java chứa hai lớp (mặc dù chỉ có một lớp có thể là công khai) và đó là lý do biên dịch một số thứ có lớp không sẽ dẫn đến tệp lớp 0.
Javac bắt đầu và kiểm tra kích thước tệp và nếu không thì tệp đó sẽ trả về mà không cần tạo bất kỳ tệp .class nào.
javac tạo tệp lớp cho mỗi khai báo lớp (rõ ràng hoặc ẩn danh). vì tệp java của bạn không có, trình biên dịch chỉ không tạo ra bất kỳ tệp lớp nào.
Nếu bạn đã khai báo lớp học, (ví dụ: public class test{ }
), nó sẽ biên dịch và tạo tệp test.class
. Nó sẽ không chạy b'cos nó không có phương pháp main
.
Nó thực sự có thể tạo (ít nhất là với OpenJDK 1.6) một tệp rỗng và biên dịch nó, nhưng: 1. nó sẽ không tạo ra tệp '.class' và 2. nó sẽ không tạo ra cảnh báo. – rbrito
lớp Emptyclass {}
// Emptyclass thể được biên dịch thành công và tập tin .class cũng được tạo ra, nhưng trong quá trình thực hiện nó không thành công, bởi vì JVM doesnot tìm 'Phương pháp chính' trong lớp 'Emptyclass'
trong khi đúng, không thực hiện không phải là câu hỏi, là nó :-) – kleopatra
Java sẽ không tạo tệp lớp của tệp java đó. Bởi vì đầu tiên nó sẽ tìm tên lớp. Vì vậy, không có gì xảy ra
- 1. Trong Java, điều gì sẽ xảy ra nếu bạn sử dụng Double.NaN trong một hoạt động?
- 2. Điều gì sẽ xảy ra khi tôi biên dịch?
- 3. Điều gì sẽ xảy ra khi biên dịch và chạy khi ghép nối một chuỗi rỗng trong Java?
- 4. Điều gì sẽ xảy ra nếu bạn không quay trở lại giao dịch trong Hibernate?
- 5. Điều gì sẽ xảy ra nếu tôi ReleaseMutex() hai lần?
- 6. Điều gì sẽ xảy ra nếu bạn ném một Ngoại lệ từ bên trong UncaughtExceptionHandler?
- 7. Nếu không xóa biến ThreadLocal, Điều gì sẽ xảy ra?
- 8. Điều gì sẽ xảy ra nếu một Dịch vụ được bắt đầu nhiều lần?
- 9. điều gì sẽ xảy ra nếu php.ini bị thiếu?
- 10. Trong Java nếu một sợi bị giết, điều gì sẽ xảy ra với luồng khác?
- 11. Điều gì sẽ xảy ra nếu hai tập lệnh python muốn viết trong cùng một tệp?
- 12. Điều gì xảy ra nếu lỗi mới?
- 13. Điều gì sẽ xảy ra nếu bạn không bao giờ gọi Socket.EndConnect?
- 14. điều gì sẽ xảy ra nếu bạn sử dụng attribute_to mà không có has_one tương ứng?
- 15. Điều gì sẽ xảy ra nếu tôi gán một giá trị âm cho biến chưa ký?
- 16. Điều gì sẽ xảy ra nếu phần đầu tiên của cấu trúc nếu là sai?
- 17. Điều gì sẽ xảy ra nếu dịch vụ dữ liệu đám mây Parse không thành công?
- 18. Chế độ biên dịch tương tác trong các emacs? (điều gì sẽ xảy ra nếu trình biên dịch hỏi một câu hỏi)
- 19. Điều gì sẽ xảy ra nếu biến đồng bộ được gán lại trong java?
- 20. Điều gì sẽ xảy ra nếu tôi gán con trỏ hàm, thay đổi số tham số
- 21. Điều gì sẽ xảy ra khi Java Compiler thấy nhiều chuỗi nối trong một dòng?
- 22. Điều gì sẽ xảy ra nếu đối tượng mẫu mới không được gán cho một biến?
- 23. Điều gì sẽ xảy ra nếu hàm main() không trả về giá trị int?
- 24. Điều gì sẽ xảy ra nếu xác định lại chức năng nội dòng?
- 25. Điều gì sẽ xảy ra nếu một hàm tạo của shared_ptr bị lỗi?
- 26. Trong JavaScript, điều gì sẽ xảy ra nếu "xóa" một thuộc tính không tồn tại?
- 27. ASP.NET MVC: Điều gì sẽ xảy ra nếu mô hình của bạn chỉ là một từ điển?
- 28. Điều gì sẽ xảy ra nếu bạn trộn các lớp kiểu cũ và mới trong một hệ thống phân cấp?
- 29. Điều gì sẽ xảy ra nếu bạn không gọi hàm khởi tạo cha mẹ một cách rõ ràng trong PHP?
- 30. Điều gì sẽ xảy ra khi bạn đóng ứng dụng bảng điều khiển C++
Có vẻ như bạn đã trả lời câu hỏi của riêng mình. Nếu bạn muốn biết * tại sao * nó xảy ra, đó là một câu hỏi khác. – MatrixFrog
Tôi hỏi Tại sao tôi nghĩ vậy. – GuruKulki
Đây là những gì sẽ xảy ra, nếu (javaFileContent.indexOf ("class") <- 1) trả về null; :) im chỉ đùa của khóa học – medopal