繁体   English   中英

为什么理解Java中引用类型和原始类型之间的区别很重要?

[英]Why is it important to understand the difference between reference types and primitive types in Java?

我列出了Java中的一些问题,这些问题如果不先了解它们之间的区别就无法正确理解。

例如:

  • 将参数传递给方法
  • 确切地说,对变量声明使用“ final”会施加哪些限制。
  • ==是什么意思

还有吗

编辑:这个问题似乎对人们没有意义。 其背后的动机是,我作为初学者学习Java的经历是,例如,两者之间的区别:

int i = 1;

Set<Thing> set = new Set<Thing>();

并不明显 现在,我知道一旦您选择使用Java,就可以认为它是理所当然的,不要去想它,但是我坚持认为,这是初学者难以克服的事情,特别是如果他们不是来自编程背景的话。 我认为这是在教授Java时经常需要解决的问题。

编辑:仍然没有好处。 随时关闭。

我认为最重要的一点是要理解Java中的引用不包含对象本身,而仅包含实际对象本身的地址(或指针或任何您想调用的对象)。 因此,至关重要的是要了解您总是有两件事:

  1. 引用 (存储在变量中)
  2. 对象 (不能存储在变量中-仅由引用引用)

如果您了解此关键概念,则==之类的内容就很容易理解,因为现在您知道您只是在比较引用而不是对象。

总结:在教授如何使用对象之前,请先解释一下对象及其引用之间的区别。

我认为您的问题是-如果您要向某人解释Java功能,那么为了获得更好的解释,您需要将其与其他功能进行比较。

例如,

== VS .equals()

这样我想-

  • 静态Vs非静态
  • 界面类
  • 同步Vs非同步

这是您要找的东西吗?

我同意Benedikt Eger的观点,即引用和对象之间的关系是最重要的理解概念。

对于您的问题列表:“ =”运算符有时可能会引起人们的困惑,因为对于初学者而言,它似乎可以“复制”基元,但可以“共享”对象。 Java中的问题比C ++中的问题少得多,因为“ =” 永远不会复制对象(Java不会将对象放在堆栈上)。 但是,我见过“ =”使初学者失望,尤其是当他们认为“ =”会创建数组的重复副本时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM