Anjelika Langer在她的泛型常见问题解答中写了以下关于Java决定使用代码重用而不是代码专业化用于泛型类型的决定:
代码专业化在以下情况下特别浪费 集合中的元素是引用(或指针),因为全部 引用(或指针)具有相同的大小,内部具有 相同的表示。基本上不需要产生 整数引用列表和列表的相同代码 对字符串的引用。两个列表都可以在内部表示 对任何类型对象的引用列表。编译器只需要 每当传入和传出这些引用时,都会添加几个强制转换 通用类型或方法。因为在Java中大多数类型都是引用 类型,它认为Java选择代码共享是很自然的 翻译泛型类型和方法的技术。
所以首先要问的是,所有引用都具有相同的大小并且内部共享相同的表示形式吗?
如果答案是真的,那么Java中的所有引用共享哪些属性?
答案 0 :(得分:2)
所以首先要问的是,所有引用都具有相同的大小并且内部共享相同的表示形式吗?
是。 (为什么你会想象像Anjelika Langer这样知识渊博的人会错的?)
如果答案是真的,那么Java中的所有引用共享哪些属性?
它们都有一个Object
作为其最终超类型的类型。因此,它们都提供java.lang.Object
API中的所有方法。