2013-08-20 74 views
6

Câu hỏi này đến với tâm trí của tôi bởi vì tôi đã đọc ở đâu đó rằng Java không phải là ngôn ngữ hướng đối tượng thuần túy vì nó đang sử dụng nguyên thủy (không phải là đối tượng). Tôi có thể làm điều này. Bây giờ vấn đề của tôi là lý do tại sao chúng tôi đang sử dụng primitives/wrappers trong khi chúng tôi đã có đối tượng trong cùng một loại?Kiểu nguyên thủy vs Kiểu đối tượng trong Java

Ví dụ: nếu chúng tôi xem xét Integer, Nó có cùng giới hạn giá trị là int ngoài hành vi đối tượng. tại sao Java vẫn sử dụng primitives trong các điều kiện này?

Theo ý kiến ​​của tôi, nếu Java chỉ sử dụng loại đối tượng Autoboxing and Unboxing không cần. Ngoài ra không có nguyên thủy cho String bằng cách này.

+3

liên quan: http://stackoverflow.com/questions/3257967/primitives-types-in-java?rq=1 –

+1

Vui lòng xem: [Tại sao mọi người vẫn sử dụng các kiểu nguyên thủy trong Java?] (Http: // stackoverflow .com/questions/5199359/why-do-people-still-use-nguyên thủy-loại-trong-java) – Jost

+1

Đây là một câu hỏi thảo luận, làm cho nó off-topic cho StackOverflow. –

Trả lời

5

Một lý do là do sử dụng bộ nhớ. Nguyên thủy, chẳng hạn như int, float vv yêu cầu phân bổ bộ nhớ ít hơn (tôi nghĩ 4 byte) so với các đối tượng có ít nhất 8 byte. Vui lòng xem reference:

Ngoài ra, rất nhiều số học (số) được hoàn thành với việc sử dụng nguyên thủy thay vì đối tượng tương đương và đây là lý do khác khiến chúng khá quan trọng trong ngôn ngữ Java.

+0

Tại sao String không có nguyên thủy? –

+1

Vì chuỗi không phải là kiểu nguyên thủy của CPU. Nhân vật là, để mở rộng một số. Chi phí của đối tượng 'String' so với' char [] 'là không thể bỏ qua. –

+0

. 'char []'. –

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