Java中的<>@造型专家_day_16_20210412

  java中的<>
  首先说一下为什么我先不提<>号是什么, 因为这样并不能让初学者很好的理解,OK,接下来进入正题
  java中的基本类型有八种,每一种都有对应的包装类,就拿int型说,对应的包装类是Integer类 类型,这是因为java中所有的类都是 java.long.Object 的直接或者间接子类,但是八种基本类型不是类,所以不能向上转型为Object类, 所以java引入包装类,使得Object类能容纳任何类型的数据。
  但是这会出现一个问题,当一个事物什么都能装的时候,必然会引起问题,比如把所有的东西 全塞进一个盒子中,找起来就变得很麻烦,那怎么解决这个问题呢,很简单,同一种类型的事物放在一个盒子,不同的不放,比如书柜只放书本,这样当你需要找书本的时候去书柜里去找就好了。
  所以java中的< >就是用来定义这个盒子的,比如< Integer >,被这个修饰的类、方法都只能是Integer类型。
  当然上面是调用处,也就是一般当你用别人的代码的时候才能看到的,你也可能会碰到另一种情况,就是在别人的源码中可能会有 < T >,< E >,< ? > 等类型 尖括号,下面我就来说说这些都是什么意思。
  
   ? 表示了不确定的类型
   T 表示了个具体的java类型,对应的英文是type,格式
   K 表示了java中键值对的键,对应的英文是key,键
   V 表示了java中键值对的值,对应的英文是value,值
   E 表示了元素,一般在集合中,我们会把属性值叫做元素,对应的英文是element,元素
   这些其实都是约定俗成的规矩,在自己编码时,可以加上这个< >,里面的值最好也按照规则来命名,当然这就和驼峰命名法一样,并不是强制规定的,用A、B、c、d都没问题,只是这样不方便别人理解。
   最后我说一下这对 < > 叫什么,它叫 泛型
  
   理解了泛型是什么,我们就来说一下它能有什么作用,其实在自己编码过程中几乎用不到泛型,因为写出来的方法和类都是自己用,比如当我们需要保存一个int型数据,就不会传入一个String类型数据,但是当我们的代码需要让别人去使用时,假如别人传入一个String类型的数据,在你的代码中,因为Object类是String类的父类,所以会发生多态,你需要在自己的代码中去用instance判断是否是String类型数据,然后你还要把他传入的数据通过强制类型转换 转换为String类型的数据才能用,同时调用处也需要类型转换,但是当我们加上泛型,当调用处的泛型写上String时,就只有String类型数据,这时候会自动进行类型转换,省了许多麻烦,也能防止调用处传入不同的类型数据。
最后附上一张图:
泛型优缺点

  
  以上就是今天学习比较深刻的理解了,希望能对查询到这篇文章的朋友有帮助,以及自己日后可以继续查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值