泛型泛型(generic)概述和基本使用
                泛型把明确数据类型的操作放到创建对象或者调用方法的时候再明确。
                
                JDK1.5之后的新特性。
                
                格式:
                        <引用数据类型>
                
                好处:
                        泛型保证集合中的数据类型一致,提高安全性。把运行期异常提前到编译期。
                
                
                那么在JDK1.5之前怎么实现参数的任意化呢?
                        是通过接收Object类型的参数实现的。因为任意类直接或间接继承自Object。
                        但这样实现的缺点就是,还是不能保证数据类型的安全一致。
                        Object obj1 = new Student();
                        Object obj2 = new Teacher();
                        上面两个对象都声明为Object类型,那获取元素的时候到底该如何转型呢?还是存在问题。
                应用:
                        泛型类
                        泛型接口
                        泛型方法
                
        2、ArrayList存储字符串和自定义对象并遍历泛型版
        
        3、泛型的由来
        
                补充:泛型擦除
                查看下述两个方法:
                        public void show(ArrayList<String> list) {}

public void show(ArrayList<Integer> list){}

/*
                 * 上述两个方法是不会形成方法的重载的,会报方法已存在的错误。 原因:泛型擦除
                 * 泛型是1.5中引入的一个新的概念,由于不用进行强制转换类型了,所以具有较高的安全性和易用性。
                 * 因为泛型其实只是在编译器中实现的而虚拟机并不认识泛型
                 * ,所以要在虚拟机中将泛型类型进行擦除。也就是说,在编译阶段使用泛型,运行阶段取消泛型,即擦除。
                 * 擦除是将泛型类型以其父类代替,如String变成了Object等。
                 * 其实在使用的时候还是进行带强制类型的转化,只不过这是比较安全的转换,因为在编译阶段已经确保了数据的一致性。
                 */
        
        4、泛型类的概述及使用
                明确数据类型的工作放到了创建对象的时候
        
        5、泛型方法的概述和使用
                明确数据类型的工作放到了调用方法的时候
                
                方法泛型 <> 加在返回值前面。
        
        6、泛型接口的概述和使用
                一种是子类实现接口的时候明确数据类型
                        interface Fu<T>{}
                
                        class Zi implements Fu<String>{}
                        
                一种是子类继续使用泛型:
                        class Zi<T> implements Fu<T>{}
        
        7、泛型高级之通配符
        
                <?> -- 泛型通配符
                <? extends E> -- 向下限定,接收E及其子类类型
                
                <? super E> -- 向上限定,接收E及其父类类型
                
                        原理:多态。 -- 父类引用指向子类对象。 Fu fu = new Zi();

AJPFX总结泛型概念和使用的更多相关文章

  1. 转!!java泛型概念(泛型类,接口,方法)

    一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...

  2. 牛客网Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现

    不多说,直接上干货! 先来看个泛型概念提出的背景的例子. GenericDemo.java package zhouls.bigdata.DataFeatureSelection; import ja ...

  3. Java泛型概念

    1. 概述在引入范型之前,Java类型分为原始类型.复杂类型,其中复杂类型分为数组和类.引入范型后,一个复杂类型就可以在细分成更多的类型.例如原先的类型List,现在在细分成List<Objec ...

  4. boost.asio源码剖析(四) ---- asio中的泛型概念(concepts)

    * Protocol(通信协议) Protocol,是asio在网络编程方面最重要的一个concept.在第一章中的levelX类图中可以看到,所有提供网络相关功能的服务和I/O对象都需要Protoc ...

  5. Java中的泛型 (上) - 基本概念和原理

    本节我们主要来介绍泛型的基本概念和原理 后续章节我们会介绍各种容器类,容器类可以说是日常程序开发中天天用到的,没有容器类,难以想象能开发什么真正有用的程序.而容器类是基于泛型的,不理解泛型,我们就难以 ...

  6. Java编程的逻辑 (35) - 泛型 (上) - 基本概念和原理

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  7. Java总结篇系列:Java泛型

    一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...

  8. 18.Java泛型

    1.为什么需要泛型 List list1=new ArrayList(Arrays.asList(new String("string"),new Integer(20))); S ...

  9. 深入理解Java之泛型

    原文出处: absfree 1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过 ...

随机推荐

  1. Jenkins系列之-—03 修改Jenkins用户的密码

    一.Jenkins修改用户密码 Jenkins用户的数据存放在JENKINS_HOME/users目录. 1. 打开忘记密码的用户文件夹,里面就一个文件config.xml.打开并找到<pass ...

  2. android &lt;application&gt; 开发文档翻译

    由于本人英文能力实在有限,不足之初敬请谅解 本博客仅仅要没有注明"转",那么均为原创.转贴请注明本博客链接链接 <application>语法:    <appl ...

  3. Coding Ninja 修炼笔记 (1)

    大家好啊~我又回来了. 这次主要是给大家带来一些提升 Coding 效率的建议. 效率都是一点一滴优化出来的,虽然每一条建议给你带来的提升可能都不大,但是积累起来,仍然是一股不可忽视的力量. 第一条 ...

  4. JavaScript基本类型与引用类型

    前面已经说过,JavaScript变量是松散类型,它可以保存任何类型的值.变量的值以及数据类型可以在脚本的生命周期内发生改变.变量包含两种不同类型的值:基本类型和引用类型.基本类型值的是简单的数据段, ...

  5. 邮件:事务失败。 服务器响应为:DT:SPM 163 smtp

    几年前我做的一个项目,日发邮件最高峰时几十万.自以为对邮件发送方面已经有了一定认识,所以近期机缘巧合之下,又有项目需要发送邮件,不禁自信满满,暗自庆幸能不手到擒来乎? 不想老革命遇到新问题.我原先的邮 ...

  6. javascript闭包的应用

    我印象中,javascript的闭包属于进阶的范畴,无非是用来在面试中装装逼而已.你看我身边的一个小伙子,有一天我装逼地问他什么是javascript的闭包,他居然连听都没听说过.但他做起前端的东西来 ...

  7. HDU 2512 一卡通大冒险(dp)

    一卡通大冒险 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  8. ELF和a.out文件格式的比较

    本文讨论了 UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出).COFF(Common Ob ...

  9. hdu1584(状态压缩DP)

    蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  10. 【187】◀▶ 编辑博客的文本格式 & 装饰

    参考:博客园页面设置 参考:共享一下我的自定义CSS博客皮肤(2012.3) 一.文字周围带框框   插入一个代码,要折叠式,如下图所示: 史蒂夫 示例 选中“示例”,将其拷贝,然后黏贴,就有如下的效 ...