黑马程序员技术交流社区

标题: 张老师视频中的一点疑惑 [打印本页]

作者: 胡刚涛    时间: 2012-8-16 00:07
标题: 张老师视频中的一点疑惑
在视频中讲到自定义泛型方法时 说到自定义的T不能是int型等的基本类型,但自己编写是为什么可以通过呢?求解!!!
见图片。
有点疑惑???

int.jpg (151.75 KB, 下载次数: 35)

int.jpg

作者: 曹恒业    时间: 2012-8-16 00:26
Integer类型的自动装箱和拆箱功能和数值的范围无关,只要不超出int值的范围,都会自动装箱成Integer类型。
Lz说的173大于127,这里估计你把jvm自动生成的常用数值和自动装箱拆箱功能混淆了。
在-128到127的范围内,因为考虑到这些值在程序中用到的概率比较大,为了优化内存使用,这些值在程序一开始就存在于常量池中。
举例说明:
Integer a1 = new Integer(127);
Integer a2 = new Integer(127);
这里a1和a2都指向同一片内存区域。
Integer a3 = new Integer(128);
Integer a4 = new Integer(128);
这里a3和a4指向不同的内存区域
建议LZ再回去好好看视频,然后自己动手实验一下。
作者: 杨健yj    时间: 2012-8-16 00:31
问题应该是泛型数组就是 T[] ,不能这样定义泛型数组的。
作者: 胡刚涛    时间: 2012-8-16 08:31
曹恒业 发表于 2012-8-16 00:26
Integer类型的自动装箱和拆箱功能和数值的范围无关,只要不超出int值的范围,都会自动装箱成Integer类型。
...

是的,明白了,谢谢!!!问题搞定了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2