Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在java中不使用指针概念?_Java - Fatal编程技术网

为什么在java中不使用指针概念?

为什么在java中不使用指针概念?,java,Java,正如我们所知,在c/c++中存在指针概念,指针概念是一个非常好的概念。那么,为什么java开发人员会删除它,如果我们不能在java中使用它,它的优点和缺点是什么。默认情况下,托管语言中禁止指针,以允许内存管理不透明-例如,如果没有指针,您可以使用压缩垃圾收集器将对象移动得更近,以释放更大的可用空间块并提高缓存一致性。但如果存在指针,那么每个指针要么需要在每次垃圾收集时更新,要么变为有效,这是不可行的 (这当然只是一个原因:)但一个例子说明了允许指针如何极大地改变编程语言的功能) 在一些托管语言中

正如我们所知,在c/c++中存在指针概念,指针概念是一个非常好的概念。那么,为什么java开发人员会删除它,如果我们不能在java中使用它,它的优点和缺点是什么。默认情况下,托管语言中禁止指针,以允许内存管理不透明-例如,如果没有指针,您可以使用压缩垃圾收集器将对象移动得更近,以释放更大的可用空间块并提高缓存一致性。但如果存在指针,那么每个指针要么需要在每次垃圾收集时更新,要么变为有效,这是不可行的

(这当然只是一个原因:)但一个例子说明了允许指针如何极大地改变编程语言的功能)


在一些托管语言中,如C#,您可以声明
不安全的{}
块,在这些块中您可以使用非托管内存和指针,但只能在那里使用。

Java的主要卖点之一是对不称职的C/C++程序员的“不再使用指针”运动(我现在将被点燃)。这更像是Java有指针,但它以安全的方式管理它们。