泛型的类型参数---泛型的参数只能是对象,不能是原始数据类型

泛型其实指得就是参数化类型,使得代码可以适应多种类型。像容器,List< T >,大量使用了泛型

它的主要目的之一就是用来指定容器要持有什么类型的对象

泛型只能只能代表引用类型,不能是原始类型,原始类型有byte/short/int/long 浮点型:float.double 字符型char 布尔型:boolean,引用类型与原始类型的区别在于虽然二者保存在栈中,但原始类型保存的是实际值,而引用类型保存的是一个对象的内存地址

泛型本质是obejct类型 ,是引用类型 ,int不是

HashMap<K,V>必须是对象类型的,但是你put的时候可以放入int类型,它内部会把基本类型转换成对应的包装类型

除此之外 map还可以put(null) 这样是可以的

测试一个没有泛型的map 

结果

注意的是,key值为null的是没有hashCode值的

还有一些比较有趣的结果,map的存放的确是以key值来排序的

P.S.一些干货知识(转载的)

泛型是源于C++,那里叫模板类,模板函数,用来解决不同类型参数的处理问题。(这主要源于Java和C++都是强类型语言,就是必须先定义了类型,中间还不能修改),泛型的?是通配符,相当于正规表达式,extends,表示这是后边这种类型的子类。? super T,表示都是T的父类。前者容易理解。后者通常是充分利用多态的特性。

既然 是集合,最简单的动作:往里放,和往外拿。问题是拿到的是什么?能够允许放的又是什么?这就需要限制。比如,投票箱,只能放选票,不能放苹果。而且投票箱,往里放了,当时就不能往外拿。这些都可以通过通配符的方式来实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值