2012-11-09 37 views
5

Khi tôi viết những dòng nàyKhi nào mảng được khởi tạo trong Java?

String[] fruits = {"Apple", "Pear"}; 

Tôi hy vọng rằng tại thời gian biên dịch các mảng và các dây được tạo ra, giống như nó sẽ xảy ra đối với mã tương tự như trong C. Có đúng không? Có phải mảng và nội dung của chúng thường được tạo tại thời gian biên dịch hay tại thời gian chạy không?

Trả lời

8

Mảng, which are objects in Java, được tạo. Điều này chỉ có thể xảy ra khi chạy.

Lưu ý rằng nhiều đối tượng được tạo trong chương trình Java và sáng tạo đối tượng của bạn chỉ xảy ra sau khi bản thân máy ảo được khởi tạo. Một khởi tạo mảng tĩnh sẽ không đặt gánh nặng đáng kể lên màn trình diễn của bạn.

Nếu bạn không thay đổi mảng và bạn có nhiều trường hợp, hãy chắc chắn để khai báo nó như là tĩnh:

static String[] fruits = {"Apple", "Pear"}; 

Cũng lưu ý một sự khác biệt quan trọng với những gì có thể là một mảng tĩnh biên soạn: mảng java có thể thay đổi. Bạn không thể thay đổi độ dài của nó nhưng bạn có thể thay đổi các phần tử của nó (hoặc vô hiệu hóa chúng). Một mảng java, thậm chí là tĩnh cuối cùng, không thực sự là hằng số.

5

Mảng là các đối tượng đặc biệt trong java. Vì vậy, chúng sẽ được tạo khi chạy.

Theo Java Language Specification

Trong ngôn ngữ lập trình Java, mảng là đối tượng (§4.3.1), được tự động tạo ra, và có thể được gán cho các biến kiểu Object (§4.3.2)

JLS 15.10 cung cấp thêm thông tin về các biểu thức tạo mảng.

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