2010-03-14 21 views

Trả lời

15

Không, nhập chỉ được sử dụng trong quá trình biên dịch để tìm tham chiếu lớp học. Thêm nhập khẩu chưa sử dụng và chúng không làm gì cả. Nói một cách khác:

import java.util.*; 

chỉ có nghĩa là bạn có thể viết:

Map map = new HashMap(); 

thay vì:

java.util.Map map = new java.util.HashMap(); 

Đó là tất cả nó.

+0

để nó có thể làm chậm thời gian biên dịch một chút! – Fakrudeen

+1

@Fakrudeen - vâng, nhưng đó không phải là câu hỏi đặt ra. –

+0

@Fakrudeen - và thời gian biên dịch chậm lại có lẽ quá nhỏ để có thể nhận biết được, –

5

No. Nhập khẩu hoàn toàn là thời gian biên dịch xây dựng ... cú pháp đường.

Nhập khẩu cho trình biên dịch Java biết cách ánh xạ mã định danh trong mã nguồn tới tên lớp đầy đủ. Nhưng nếu mã nguồn không sử dụng một lớp được nhập khẩu, tệp bytecode sẽ không có tham chiếu đến nó. Do đó, một nhập khẩu dự phòng không (và không thể) tác động đến thời gian tải lớp.

5

Nhập có thể có hiệu lực trên tổng hợp thời gian, nhưng không phải lúc tải hoặc thời gian chạy. Về cơ bản, nếu bạn nhập các lớp mà bạn không cần (thường bằng cách sử dụng nhập khẩu ký tự đại diện khi nhập khẩu rõ ràng sẽ làm), thì bạn có thể làm chậm trình biên dịch một chút.

Tuy nhiên, ngay cả hiệu ứng đó thường không đáng kể trừ khi bạn đang biên soạn một hệ thống lớn.

4

Đừng nhầm lẫn giữa từ "nhập" với "tải lớp". Câu lệnh nhập không gây ra bất kỳ mã nào được nạp vào bộ nhớ. Nó chỉ là một sự thuận tiện cho phép bạn tham khảo các lớp bằng cách sử dụng tên viết tắt của họ thay vì gõ tên lớp đầy đủ (ví dụ: "Kết nối" thay vì "java.sql.Connection").

Các vấn đề liên quan