目录 1 JAVA的Type类型体系 2 泛型的概念 3 泛型类和泛型方法的示例 4 类型擦除 5 参数化类型ParameterizedType 6 泛型的继承 7 泛型变量TypeVariable 8 通配符(WildcardType) 无边界通配符:无界通配符 ? 可以适配任何引用类型: 上界限定通配符 < ? extends E> 下界限定通配符 < ? super E> 9 泛型数组(GenericArrayType) 欢迎指正文中错误 关注公众号,一起交流 1 JAVA的…
总结Java的泛型前,先简单的介绍下C#的泛型,通过对比,比较学习Java泛型的目的和设计意图.C#泛型是C#语言2.0和通用语言运行时(CLR)同时支持的一个特性(这一点是导致C#泛型和Java泛型区别的最大原因,后面会介绍).C#泛型在.NET CLR支持为.NET框架引入参数化变量支持.C#泛型更类似C++模板,可以理解,C#泛型实际上可以理解为类的模板类.我们通过代码实例来看C# 2.0泛型解决的问题,首先,我们通过一个没有泛型的迭代器的代码示例说起,代码实现如下: interface…
泛型和 Any 类型 这两个类型看起来很相似,但是一定要小心两者的区别.他们区别在于 Any 类型会避开类型的检查,所以尽量少用最好不用.泛型一方面很灵活一方面也很安全,下面举个例子感受下两者的区别: <T>_ -> T { //... return input; ( input: Any) -> Any { //... return input; 这两个函数都是可以允许任意类型的 input 参数,不同在于返回的类型在 anyAdd 函数里是可以和入参不一样的,这样就会失控,在后…
Java 基本类型和对象类型的区别 基本类型: int long byte float double char boolean short 对象类型: Integer Long Byte Float Double Character Boolean Short 包装类: java中有时候运算时两个对象之间进行的,不允许对象和数字之间进行运算,所以需要一个对象.这个对象就是把数字进行一下包装,这样这个对象就可以和另一个对象进行运算了.   区别: 一个没有任何的方法和属性,一个有方法和属性.…
Java中的集合类型体系(一) 提问:为什么需要集合? 通常情况下,程序需要根据运行时才知道创建了多少对象.若非程序运行时,而在开发阶段,我们并不知道创建了多少对象,甚至不知道对象的准确类型,为了满足常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,但是用什么容器要存放这些对象呢?首先可能会想到用数组存放,但是数组只能存放同一类型的数据,且数组长度是固定的.所以用什么来存放更合适呢?就这样,集合便应运而生了. 一.集合的概念 Java中的集合类统一封装在java.util包中,是…
前言:撸基础篇系列,避免每次都要从头开始看,写个自己的知识体系树 NIO 核心就是异步, 比如,复制文件,让操作系统去处理,等通知 BIO核心类 一,BIO NIO基本操作类 Bytebuffer 构建: 用JVM的内存构建: ByteBuffer.allocate(bufferSize) 用JVM的直接内存构建: ByteBuffer.allocateDirect(bufferSize) 内存结构:  flip()后--> postion, limit,和captain的处理工具类 flip(…
引言 我们使用object和泛型做形参,都是为了让这个方法能接收更多类型的对象,让程序变得更健壮,代码复用率更高.当我们回看自己写的代码时会发现,好像使用泛型的地方使用object也可以,使用object的地方使用泛型同样能实现,那么,本文就说一下,泛型和object的却别 正题 先上举例来说明一下object和泛型的使用场景吧,有这样一个需求:写一个数字排序的算法,我们知道java中的数字类型有Double.Float.Byte.Short.Integer 以及 Long. 方法一:每种数字类…
说到数据类型这个问题是一个基本的不能再基本的问题,我们当初编程入门第一课一般就是讲数据类型,而今天我想记录的是一个在Java中容易忽略的问题,即基本类型和包装类型. 一.基本类型出现的原因 我们都知道在Java语言中,new一个对象存储在堆里,我们通过堆栈中的引用来使用这些对象:但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量.(如下图所示为内存空间示意图) 所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用n…
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6715063.html 1.回顾 之前的两篇分别解析了类型别名注册器和类型处理器注册器,此二者皆是解析XML映射文件中参数类型与返回结果类型的基础,别名注册器用于通过别名找到对应的类类型,类型处理器注册器则用于通过类类型来找到对应了类型处理器与数据库类型,以此来完成进出数据库数据与java之间类型的转换. 我们在类型处理器注册器一篇中已经简单介绍了类型处理器,那就是用于java类型与数据库…
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6705769.html 1.回顾 前面几篇讲了数据源模块,这和之前的事务模块都是environment中的组成部分,而Environgment是Configuration的基础部分,是构建Configuration的基石,但是有了基石只是能构建一个简单的配置对象,要适应实际的使用环境,还需要额外的组件,这些东西都需要添加到配置对象中,这一次就介绍类型模块—Type. 类型模块的具体内容基本…