3

Anjelika Langer 在她的泛型常见问题解答中写了以下关于 Java 决定使用代码重用而不是泛型类型的代码专门化的决定:

在集合中的元素是引用(或指针)的情况下,代码专门化尤其浪费,因为所有引用(或指针)的大小相同并且内部具有相同的表示。不需要为整数引用列表和字符串引用列表生成几乎相同的代码。这两个列表都可以在内部由对任何类型对象的引用列表表示。每当这些引用传入和传出泛型类型或方法时,编译器只需添加几个强制转换。由于在 Java 中大多数类型都是引用类型,因此 Java 选择代码共享作为其通用类型和方法转换的技术是很自然的。

所以第一个问题是真的所有引用都具有相同的大小并且在内部共享相同的表示吗?

如果答案是正确的,Java 中的所有引用共享哪些属性?

4

1 回答 1

2

所以第一个问题是真的所有引用都具有相同的大小并且在内部共享相同的表示吗?

是的。(为什么你会想象像 Anjelika Langer 这样知识渊博的人会弄错???)

如果答案是正确的,Java 中的所有引用共享哪些属性?

他们都有一个类型,Object作为它的终极超类型。因此它们都提供了java.lang.ObjectAPI 中的所有方法。

于 2013-03-09T05:40:26.717 回答