Tôi đang lấy cấu trúc và phân tích dữ liệu. Chúng tôi đã đi qua cách phân công và so sánh các loại đối tượng là chậm hơn nhiều so với phân công và so sánh cho các loại cơ bản, chẳng hạn như int.Các số nguyên của con trỏ Java?
Tôi nhớ lại việc học C (tất cả những người gần ba mươi năm trước) và cách con trỏ trong C là (hoặc là) gọi số nguyên. Là Java tương tự như ngày hôm nay, là một tham chiếu đến một đối tượng instance nội địa chỉ số nguyên bộ nhớ, và như vậy là so sánh như
if (MyObject != null) {...}
một hoạt động số nguyên trong phạm vi khuôn khổ?
Tôi hy vọng câu hỏi của tôi là rõ ràng. Tôi đã nghiên cứu xung quanh và tôi không thể tìm thấy một câu trả lời rõ ràng về cách Java quản lý bộ nhớ động của nó.
Tôi thấy bài đăng này bị nhầm lẫn nguy hiểm. Bạn dường như nhấn mạnh rằng "so sánh đối tượng là chậm", và rằng so sánh con trỏ là nhanh chóng và do đó tốt hơn. Nhưng đó là những thứ hoàn toàn khác. Một là về bình đẳng giá trị và khác là về nhận dạng đối tượng. Để đưa ra một sự tương tự trong Python, một là về '99 == 99', và cái kia là về' 301 là 301' –
Tôi không xao nhãng, tôi hỏi. Cảm ơn vì đầu vào của bạn. – failure
Tất cả các giá trị trong Java là "số nguyên" nội bộ, bao gồm cả số dấu phẩy động. Đó là vấn đề làm thế nào họ được giải thích. Nhưng bạn đang bối rối so sánh * con trỏ * với so sánh * đối tượng * chỉ ra - hai điều hoàn toàn khác nhau. So sánh giữa hai "con trỏ" (tham chiếu) Java với '==' là nhanh như so sánh hai giá trị * dài *. –