泛型学习一

泛型学习一##

泛型学习一

1.1泛型的简单介绍

泛型是JDK1.5中的一项新特性,它的本质时参数化类型的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在这指定具体的类型,这种参数类型可以用在类、接口和方法的创建中,分别成为泛型类、泛型接口和泛型方法。

泛型的英文单词式Generic,通用的、一般的,字面意思多种类型

java中的泛型:类型限定的意思

本质:把对象/集合里面元素的类型推迟到创建集合的时候

1.2泛型的作用

  1. 保证了类型安全
  2. 消除了强制类型转换
  3. 提高了代码的通用性
  4. 提高了性能

知识回顾:

基本数据类型包括:byte、long、float、double、char、boolean

引数据类型:类、接口类型、数组类型、枚举类型、注解类型

区别:基本数据类型在贝创建时,在栈上给其划分出一块内存,将数值直接存储在栈上

引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存在堆内存上,然后由栈上面的引用指向堆中对象的地址。

ArrayList<E>和ArrayList<Integer>
 

以上面的两个泛型类型作为例子,

整个ArrayList为泛型类型

ArrayList中的E称为类型变量或者类型参数,

整个ArrayList称为参数化的类型

ArrayList中的integer称为类型参数的实例或者实际类型参数

ArrayList称为原始类型


1.3型的使用

<泛型类型> 数据类型:只能是引用类型

使用格式:数据类型<泛型的类型> 对象=new 数据类型<数据类型>()

//右边可以不写泛型,左边必须写泛型(jdk1.7泛型推断)

//标准格式
ArrayList<String> list=new ArrayList<String>();
//根据jdk1.7推断 等式右边可以不写泛型
ArrayList<String> list=new ArrayList ();
//泛型的数据类型只能是引用类型,即类、接口类型、数组类型、枚举类型、注解类型

ArrayList list=new ArrayList();
list.add("abc");
list.add(1);	//这里的1被自动装箱为Integer类型,所以没报错

1.4型中T、E、K、V、?

简单粗暴的来介绍一下这五个字符的含义,说白都是Java泛型的通配符,换成其他字母结果也不会有影响,只是为了方便查看代码约定俗称按照一定的含义就选用这几个字母进行表示,这增加了代码的可读性。

  • E:Element(在集合中使用,因为集合中存放的是元素) Collection
  • T::Type(java 类)public T Test1(T t){}
  • K:Key(键)Map<K,V>
  • V:代表java键值中的Value
  • ?:表示不确定的java类型,是类型通配符,代表所有类型。?不会进行类型推断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐着地板打地鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值