有 Java 编程相关的问题?

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


共 (2) 个答案

  1. # 1 楼答案

    刚接触Java的人在理解引用时遇到的常见问题有:

    • 对Java参数传递机制的困惑。他们认为,因为对象是引用,所以它们在方法调用中“通过引用传递”。事实并非如此。在Java中,参数总是“按值传递”

    • 关于Java数组是什么的困惑。数组只是一种特殊的对象。它们是在堆上创建的,有引用,这些引用是“按值传递的”。。。就像其他物体一样

    • 关于==对于引用的含义的困惑。它的意思是“与”相同,而不是“等于”。equals方法用于测试两个对象是否相等。。。不管这意味着什么

    • 新用户经常出错的一个众所周知的子类是在处理字符串时,两个字符串对象通常“相等”,但不是“同一个对象”。简单的规则是不要使用==来比较字符串

    • 一个不太为人所知的子类是基本包装类Boolean、Character、Integer等。问题是。。。解决方案。。。本质上与字符串相同;i、 e.不要使用==来比较布尔值、字符、整数等的实例

    • 有些人对null有问题。基本概念很简单,但有些人养成了在应该抛出异常时返回null的坏习惯。这导致了大量不必要的null测试,以及在忽略必要的空测试时由于意外的NullPointerExceptions而导致的片状

    • 有些人认为应该能够为堆栈上分配的某个对象创建引用。Java不允许这样做。在Java中,对象总是在堆中分配。堆栈框架只包含引用和原语值,Java不提供任何“获取地址”的方法

    • 有些人认为你应该能够用引用做指针算术。Java不允许这样做

    但基本上,Java引用非常简单易懂,而且基本上没有问题。。。一旦你不再试图用C/C++指针来思考它们。p>

  2. # 2 楼答案

    简而言之

    Java通过引用操作对象,所有对象变量都是引用。然而,Java不通过引用传递方法参数;它按价值传递它们

    因此,对象可以通过referece传递到方法中,但基元(int/boolean)是通过值传递的

    这个网站很好地解释了不同之处。。。 Javaworld: pass by reference