【问题标题】:Is "equivalent" the same as "equal" (or "absolute equal")?“等效”与“相等”(或“绝对相等”)相同吗?
【发布时间】:2016-03-07 22:41:57
【问题描述】:

这两个词一直萦绕在我的脑海中。它们在逻辑上是相同的还是完全不同的?例如,在 Java book: Introduction to Programming by Liang 中,他说:

您可以使用泛型类而无需指定具体类型,例如 这个:

GenericStack stack = new GenericStack(); // raw type

大致相当于

GenericStack<Object> stack = new GenericStack<Object>();

【问题讨论】:

    标签: java logic discrete-mathematics


    【解决方案1】:

    平等有很多层次。通常它们用“相等”或“等价”之类的词来指定。这些词的含义完全取决于上下文,但通常平等意味着等价,但反之则不然。

    例如,给定两段代码AB,我们可以说AB如果它们由完全相同的字符组成,则它们是相等的,并且如果我们总是可以将 A 替换为 B,则它们是等价的,反之亦然,而不改变程序。如果我们这样做,

    int i;
    i = 10;
    

    int i = 10;
    

    不相等,但等价。

    您引用中的两个代码 sn-ps 被作者称为“大致等效”。 “大致”一词表明它们根本不等价。确实:

    GenericStack stack = new GenericStack();
    GenericStack<String> stack2 = stack;
    

    编译(带有警告),而

    GenericStack<Object> stack = new GenericStack<Object>();
    GenericStack<String> stack2 = stack;
    

    没有。

    作者所说的“大致等价”的意思是原始类型在许多(但不是全部)情况下确实表现得像GenericStack&lt;Object&gt;。特别是,您可以将任何对象放入其中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 2019-05-19
      • 2010-10-08
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多