有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (6) 个答案

  1. # 1 楼答案

    可以在Java(JNI)中调用本机函数,因此在这个意义上可以使用指针。但除此之外——不,Java中没有指针

  2. # 2 楼答案

    Java没有指针,只有对对象的引用。引用类似于指针,因为它指向一个变量、一个对象,但不能查看或编辑该引用的地址内存,这可以在C中实现

    还有一件事。在C语言中,可以通过引用/取消引用操作来管理指针,在指针的名称前加*号。在Java中,这个操作,即引用/取消引用,是完全不存在的,因为它是完全自动的,对用户来说是隐藏的

    关于WikipediaOracle的其他信息

  3. # 3 楼答案

    Java有指针

    Java是否有指针的困惑与Java是按引用调用还是按值调用的讨论密切相关

    不知情的人认为Java没有指针,而且由于方法可以更改传入的对象,调用方可以看到这种更改的效果,因此他们认为它必须通过引用调用

    然而,这是不正确的

    在Java中,指针是通过值传递的。Java中除了指针变量之外,没有其他类型的对象变量,也没有引用调用

    “不安全”的故事完全是另外一回事。这通常与Java是否有指针的问题不同。Java的指针是安全的;它们指向对象,并且使用正常的语言结构,它们不能被操纵来指向任意的内存位置

    然而,有JNI,但是本机代码做了潜在的不安全的事情,而不是Java代码

    还有实时Java(jsr-1),您完全可以在其中访问系统中的特定内存位置。然而,这是一个非常特殊且非常罕见的Java版本,主要用于嵌入式目的。如果这是真的,我想它会被明确提到

  4. # 5 楼答案

    指针是指向引用的概念。在C和C++中,你可以显式访问指针,但是在java中,我们使用引用来指向对象。例如,如果您将一个实例传递给一个方法,我们知道它的引用传递,但最终会传递指针。当您在方法中更改实例的状态时,它会反映在完成方法调用后使用该实例的时间

    我们使用java中的引用,它是关于JVM的指针

    当我们使用new操作符时,它会在heap中创建实例,并返回指向它的引用的地址

    我相信这会回答你的问题,如果不是的话,你可以对我的答案发表评论

  5. # 6 楼答案

    有一个叫做^{}的类,这是真的。但它在Java代码中不使用指针(因为Java没有指针,尽管我同意Java引用在概念上是类似的),大部分都是使用本机代码实现的

    正如我在评论中提到的,这不是公共API的一部分,客户端代码不应该使用它。然而,当您查看the ^{} packageAtomic*类的源代码时,您可以看到它的作用