<分区>
在 Java 中使用引用时有哪些注意事项?
<分区>
在 Java 中使用引用时有哪些注意事项?
最佳答案
Java 新手在理解引用时遇到的常见问题是:
对 Java 的参数传递机制感到困惑。他们认为因为对象是引用,所以它们在方法调用中是“通过引用传递”的。这不是真的。在 Java 中,参数总是“按值传递”。
对什么是 Java 数组感到困惑。数组只是一种特殊的对象。它们是在堆上创建的,具有引用,并且这些引用是“按值传递”的……就像任何其他对象一样。
对 ==
对引用的含义感到困惑。它的意思是“是同一个对象”,不是“等于”。 equals
方法用于测试两个对象是否相等……不管是什么意思。
新用户经常出错的一个众所周知的子案例是在处理字符串时,两个字符串对象“相等”而不是“同一对象”是很常见的。简单的规则是不要使用 ==
来比较字符串。
一个鲜为人知的子案例是原始包装类 Boolean、Character、Integer 等。问题...和解决方案...与字符串基本相同;即不要使用 ==
来比较 Boolean、Character、Integer 等实例。
有些人对null
有疑问。基本概念很简单,但有些人养成了在应该抛出异常时返回 null
的坏习惯。这会导致对 null
进行大量不必要的测试,并且当必要的 null 测试被遗漏时,由于意外的 NullPointerExceptions
而导致不稳定。
有些人认为您应该能够为分配在堆栈上的某些对象创建引用。 Java 不允许这样做。在 Java 中,对象总是分配在堆中。堆栈帧仅包含引用和原始值,Java 不提供“获取”任何内容的地址的方法。
有些人认为您应该能够使用引用进行指针运算。 Java 不允许这样做。
但基本上,Java 引用非常简单易懂,而且基本上没有问题……一旦您停止尝试从 C/C++ 指针的角度考虑它们。
关于java - 在 Java 中使用引用时的注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1741003/