Java為什么沒有指針


為了摒棄指針帶來的風險(當然了,也就放棄了指針帶來的效率)。

1、C/C++為什么有指針?

這個很簡單,程序都是在內存中運行的,只要有內存,就有內存地址,有地址,就必然有指針,只是C++對內存地址的訪問做了語言的支持,稱之為指針。
2、指針的優點?
a、效率,指針就是內存的地址訪問(雖然不是真正的物理地址,但是通過簡單的映射就可以得到),性能非常好。
b、C/C++語言的需要,C/C++沒有完善的面向對象支持,因此你不能聲明一個Object類型的形參來接收所有類型的實參,因此C++只能通過萬能指針void*來支持,C++中new出來的對象都是指針類型的(區別於直接聲明一個類對象,Java中聲明一個類的對象不實例化就是null,C/C++中對象類型可以像基本類型那樣直接聲明一個)。
3、指針的缺點?
a、穩定問題,指針太靈活,不小心就容易出現指針訪問越界之類的問題,非常容易出問題。
b、安全性問題。
4、java有類似指針,在java中稱為引用。所謂的引用就是內存地址的值。拿到該引用就相當 於得到了該內存處的對象。

Java認為,程序員應該花更多的精力在業務代碼上,而不是語言相關的部分。所以Java的目標就是,盡量幫你完成不需要你關注的工作:指針管理、對象管理...

通過研究,Java認為,所有語言中需要使用指針才可以實現的代碼,Java通過純面向對象也可以給你支持。

 (哈希表)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM