01/10/2018, 09:21

Tại sao trong java lại ko có con trỏ mà C lại có?

Tại sao trong java lại ko có con trỏ mà C lại có?

Tao Không Ngu. viết 11:30 ngày 01/10/2018

Hi lethithu.
Cho dễ học. Không cần con trỏ java vẫn làm việc tốt.

Cong 5 viết 11:25 ngày 01/10/2018

con trỏ nó tiềm tàn nhiều lỗi nếu lập trình viên không kiểm soát được , nếu viết các chương trình rất lớn mà chỉ cần 1 lỗi nhỏ từ con trỏ nó sẽ làm crash cả chương trình , vì thế java chấp nhập đổi tốc độ để lấy sự an toàn và ổn định…

lethu viết 11:28 ngày 01/10/2018

:))), nhưng mình ko hiểu vì sao trong java lại ko dùng ý c:))

Trần Ngọc Khoa viết 11:27 ngày 01/10/2018

Vì Java có cơ chế d̶ọ̶n̶ ̶d̶ẹ̶p̶ thu hồi các ô nhớ khi không dùng đến. Trong C không có cơ chế này, đây là công việc của người lập trình. Việc cấp phát động được coi là một phương pháp để lập trình viên có thể quản lý bộ nhớ một cách chủ động và có thể dọn dẹp dễ hơn cấp phát tĩnh.
Khi lập trình Java, thay vì phải bận tâm đến tối ưu bộ nhớ thì người lập trình có thể tập trung hơn đến giải pháp giải quyết vấn đề chính.
Thực ra Java vẫn có con trỏ. Thể hiện qua việc bạn cấp phát bộ nhớ bằng SomeClass a = new SomeClass().
Nếu bạn lấy SomeClass b = a; thì b đang trỏ đến vùng nhớ của a.
Ps: Con trỏ this trong Java là một con trỏ.

James viết 11:28 ngày 01/10/2018

ko phải ko có mà là do ng ta ẩn đi thôi

viết 11:25 ngày 01/10/2018

Về cơ bản rồi bạn sẽ thấy trong java cũng có cơ chế trỏ tương tự như C,đối tượng trong java không bị trỏ tới nữa sẽ bị thu hồi vùng nhớ, nhưng ở C cho phép trỏ tới từng ô nhớ thì java chỉ cho trỏ tới các thực thể đối tượng mà thôi! Về tốc độ và độ mạnh thì java thua C nhưng nó giúp hạn chế các lỗi do việc trỏ lung tung, truy xuất vào vùng dữ liệu không được phép gây ra và người ta nói java là ngôn ngữ an toàn hơn(và cũng dễ học hơn -_- )

Bài liên quan
0