在Java中使用引用时的注意事项和注意事项

Sac*_*iya 1 java reference

在Java中使用引用时有什么注意事项?

Ste*_*n C 10

Java新手的常见问题是:

  • 关于Java的参数传递机制的困惑.他们认为因为对象是引用,所以它们在方法调用中"通过引用传递".这不是真的.参数始终在Java中"按值传递".

  • 关于Java数组是什么的混淆.数组只是一种特殊的对象.它们是在堆上创建的,具有引用,并且这些引用"按值传递"...就像任何其他对象一样.

  • 关于什么==是参考手段的困惑.它意味着"与"相同的对象,而不是 "等于".该equals方法用于测试两个对象是否相等......无论这意味着什么.

  • 新用户经常出错的一个众所周知的子例是在处理字符串时,两个String对象通常是"相等"但不是"同一个对象".简单的规则是不用于==比较字符串.

  • 一个鲜为人知的子例子是原始包装类Boolean,Character,Integer等.问题......和解决方案......基本上与字符串相同; 即不要==用于比较Boolean,Character,Integer等实例.

  • 有些人有问题null.基本概念很简单,但有些人养成了null在应该抛出异常时返回的坏习惯.这会导致许多不必要的测试null和散乱,因为在NullPointerExceptions遗漏必要的空测试时会出现意外情况.

  • 有些人认为您应该能够为堆栈上分配的某些对象创建引用.Java不允许这样做.在Java中,始终在堆中分配对象.堆栈框架仅包含引用和原始值,而Java不提供"获取"任何内容的方法.

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

但基本上,Java引用非常简单易懂,并且基本上没有问题......一旦你停止尝试用C/C++指针来思考它们.