我已经在谷歌上寻找答案,但我不满意。
我的逻辑:
Java
使用内存位置,它只是在幕后你无法看到或访问它(据我所知,可能有一些我不知道的访问它们的方法)。
我的困惑/问题:
像 Java 这样专为在任何系统上使用的互联网而设计的编程语言中不使用指针的目的是什么,而像 C++ 这样使用指针的编程语言呢?
Edit
你们中的许多人都在说“为了保持简单”。如果是这样的话,那么为什么像这样的流行编程语言c++
,仍然使用指针吗?
简单的答案是,这是一个设计决策。稍微长一点的答案是,C++ 中的指针仅是内存操作所必需的,这不是一个适用于 Java 的概念(见下文)。
Java 设想了一个相当系统的、面向对象的编程模型,所有基于类的类型本质上都是always通过指针处理,因此这个事实根本不会暴露给用户。
C++ 中的原始指针对于高质量、系统化和惯用的编程也不是非常必要。原始指针允许您执行的操作(即指针算术)通常被认为是“不安全的”,因此它被完全排除在 Java 之外。
顺便注意,人们尝试用 C 和 C++ 中的指针做的许多事情实际上是未定义的行为。正确使用指针会给您带来一组相当有限的选项,其中大部分可以在惯用的 C++ 中做得更好。
关于唯一real指针的使用是直接的内存操作。由于 Java 不希望您这样做(事实上,它的垃圾收集内存管理会主动干扰手动内存操作并被手动内存操作破坏),因此不需要显式指针。
更新后:最后一段(在我看来)是最引人注目的解释:在 C++ 中,你need能够编写自己的内存管理代码(参见“分配器”)。还有记忆has通过指针来处理。所以我严格的答案是,当你实现内存管理时,你需要 C++ 中的指针,否则就不需要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)