关于泛型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于泛型相关的知识,希望对你有一定的参考价值。

1泛型

继承:

任何类型的父类都是object object是一切类型的基类 子类继承父类的所有东西(里氏替换原则)

 


执行方式:

技术分享
构造函数每个类都有一个默认的构造函数,一个类可以有多个构造函数,每个类在执行构造函数时(如果继承了父类)都会先执行父类构造函数再执行自身函数,这样子类就可以拥有父类的属性和方法了。
应用场景如:写个通用的泛型方法,传入一个类作为类型。这样就可以使用这个类的方法属性以及继承的一些属性和方法。
public static T Way<T>(T para) where T: People,new(){}

对象.gettype()----->获取该对象是什么类型
typeof()----typeof(int)指明里面是什么类型
gettype和typeof就是分别针对对象和类型的


声明------------泛型 <T>(T value)
延迟声明
声明static 可以直接类名.方法名无需用new就可以调用,一般公用的时候写成静态的,静态的成员信息(属性)会分配到内存的柞中(无论是int 类型 还是string类型)理论上是int 分配在内存的堆中 string 分配在内存的柞中。
类.方法名.<int>(value)这里value要对应是int型

泛型约束 where T: class,Interface,new()其中,的关系是并且的关系。是对泛型集合传入的对象的约束

泛型优点:减少代码冗余, 相对用object类型而言不会有拆箱装箱(拆箱object--》int将引用类型转化为值类型 ,装箱----》将值类型转化成引用类型)
值类型:栈从线程的堆栈中分配,不考虑垃圾回收机制,继承自System.ValueType,有两种形式:装箱和未装箱,不能作为基类,不能有虚方法,初始化时默认为0值,复制时“字段对字段”的拷贝。
引用类型:从托管堆中分配,对象考虑垃圾回收机制,所有类都是引用,只有装箱形式,可以继承和派生,引用类型变量初始化时默认为null,复制时只拷贝内存地址。

以上是关于关于泛型的主要内容,如果未能解决你的问题,请参考以下文章

Java 泛型泛型简介 ( 泛型类 | 泛型方法 | 静态方法的泛型 | 泛型类与泛型方法完整示例 )

Kotlin学习手记--泛型泛型约束泛型型变星投影泛型擦除内联特化

java泛型泛型的内部原理:类型擦除以及类型擦除带来的问题

C#高级语法之泛型泛型约束,类型安全逆变和协变(思想原理)

Java 泛型泛型用法 ( 泛型编译期擦除 | 上界通配符 <? extends T> | 下界通配符 <? super T> )

转载Java泛型