我想知道,泛型类型的原始类型声明会导致内存泄漏问题。例如:在下面的代码中将vector定义为raw
Vector shortCutVector = (Vector) request.getAttribute("shortCutVector");
答案 0 :(得分:2)
不,泛型不会以任何方式影响内存使用。它们只是向编译器提供输入信息的一种方式。
如果是Vector
(或ArrayList
,如果您不使用古老的类),内部存储仍由Object[] arr;
处理,因此它没有任何区别通用类型是什么。
更重要的是,对象引用的内存使用量始终相同,因此Integer i;
和String s;
仍然会使用相同数量的内存。但是,初始化时,存储当然会有所不同,因为Integer i = new Integer(1);
和String s = "asdasdasd";
显然需要不同的空间量。