为什么我们不能在Java中使用指针?

这个问题在这里已经有了答案:

  • Java有指针吗? 12个答案

  • 为什么我们不能在Java中使用指针?

    因为语言设计者选择不包含语言中的指针。

    为什么我们不在这里使用指针。

    因为Java的设计者认为这是一个棘手的,容易出错的构造。

    在Java中使用哪个概念而不是指针?

    引用(如果您不考虑指针算术,这些引用非常类似于指针)。

    请记住,您创建的所有对象都是在堆上创建的(使用new关键字)。 这个事实以及没有“解除引用操作符”(C / C ++中的* )这一事实意味着没有办法获得对象! 由于无法获得对象,因此无法将对象存储在变量中。 因此,所有变量(除了保持原始类型的变量)都是引用类型的。


    这是一个语言设计决定。

    来自sun的白皮书Java语言环境:

    大多数研究都认为指针是使程序员能够将错误注入代码的主要功能之一。 鉴于结构消失了,数组和字符串都是对象,指向这些结构的指针就消失了。 因此,Java没有指针数据类型。 任何需要C语言中的数组,结构和指针的任务都可以通过声明对象和对象数组来更容易和可靠地执行。 您可以不用数组指针上的复杂指针操作,而是通过它们的算术指数来访问数组。 Java运行时系统检查所有数组索引以确保索引位于数组的范围内。

    由于指针不正确,您不再有悬挂指针和内存垃圾,因为Java中没有指针。


    不错,不是吗? 从C编程的角度来看,你没有指针,虚拟机会监视所有这些。 但是,这并不是说你没有类似的功能。 例如,对象的变量是引用,当您传递一个引用类型的指针的对象传递变量时。 你也可以使用一个变量来存储一个数组中的一个项目的索引,这在程序上也是一种指针。

    链接地址: http://www.djcxy.com/p/31657.html

    上一篇: Why can't we use pointers in Java?

    下一篇: Does java really have pointers or not?