# java201934016 **Repository Path**: GUOSD/java201934016 ## Basic Information - **Project Name**: java201934016 - **Description**: 泛型 - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-16 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java201934016 #### 介绍 泛型 #### 笔记 1. 泛型 、、、、、 1.1 泛型 声明定义时:(jdk定义声明时,或者自己声明定义一个泛型类或者泛型方法) 是程序在编程时为了达到代码复用,在类、方法声明定义时,而使用泛型符号用于指代某种类型的一种编程方式; 编程使用时:(你自己写代码时) 在具体编程时,可以把泛型符号替换为具体的类型,这样在编程可以避免类型之间的转换过程; 使用泛型时,类型转换由编译器完成,如果不使用泛型,类型转换由编程人员自己显式处理; 使用泛型,可以避免大量的方法的重载; 在编程时,如果指明了具体的泛型类型,则所用到的数据类型必须与泛型类型一致,即使可以进行类型自动转换也不允许; 在使用泛型时,指明的泛型的具体类型只能是引用类型,不能是基本类型,基本类型应该使用其对应的包装类类型; 建议,对于集合等使用泛型定义的类或方法,在使用时指明具体的类型;(要求:在编程时使用具体的泛型类型) 1.2 泛型的通配符(扩展) 泛型可以使用 extends 、 super、? 等通配符,表示泛型之间的依赖关系; 类型通配符一般是使用?代替具体的类型参数。例如 List 在逻辑上是List,List 等所有List<具体类型实参>的父类; 类型通配符上限通过形如List来定义,如此定义就是通配符泛型值接受Number及其下层子类类型; 类型通配符下限通过形如 List来定义,表示类型只能接受Number及其三层父类类型,如Objec类型的实例; 、、、、、 2. 包装类 2.1 包装类 包装类就是采用oop编程规范对基本类型进行封装的面型对象的类; 包装类价值: 将基本类型使用包装类的形式,囊括入面向对象的编程体系中; 将基本类型转换为引用类型(对象类型); 包装类和基本类型的区别: 基本类型的初始值和包装类类型的初始值(null)不一样; 包装类支持oop的,基本类型不支持oop编程;(集合存储都是对象类型) 编程原则: 类的属性进行封装时,优先使用包装类类型,而不要是基本类型; 包装类和基本类型的对应关系: long int byte short char float double boolean Long Integer Byte Short Character Float Doulbe Boolean 2.2 包装类、基本类型、String类型之间的相互转换 熟练对三种类型进行相互转换; 常用的转换函数: 构造函数转换; 静态方法转; getXXX方法转换; 注意: 基本类型和包装类类型之间可以直接赋值; 基本类型、包装类类型不能直接赋值给String类型; 基本类型和包装类类型之间可以默认自动转换; 基本类型和包装类类型可以默认自动转换为String类型; 3. 集合和数组工具类 、 3.1Collections工具类 Collections工具类是集合处理的工具类,封装了一些常用的集合处理的方法; 阅读查看Collections工具类中常用方法阅读源码 3.2Arrays工具类 Arrays工具类是对数组进行处理的工具类,参考Collection工具类进行使用 4.Object,Math,Date工具类 4.1 Object类 Object类是java中所有类的父类; Object类中常用方法: equals方法; hashcode方法; clone方法; toString方法; equals方法Object的子类用于判定内容相等的方法; 如果Object的子类(自定义开发的类),可通过重写equals方法,让子类具有比较内容是否相等的行为能力; == :适用于判定变量引用(地址)是否相等的操作符; 4.2 Math工具类 Math工具类是与数学相关的一样函数处理; 随机数的生成函数; #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)