[黑马程序员]--Java语言注解、泛型

------- android培训java培训、期待与您交流! ----------

注解

1、一个注解是一个类,使用注解相当于创建了注解的实例对象。Java 提供的三个基本注解:

@deprecated

@override

@suppresswarnings

2、 注解相当于一种标记,在程序中加入注解就等于在程序中打上了某种标记,没加则就等于没有某种标记,以后,javac编译器,开发工具和其它程序可以用反射来了解你的类及各种元素上有无何种标记,标记可以加在包、类、字段、方法,方法的参数,以及局部变量上。一个注解的生命周期包括三个阶段:

Java 源文件 ---> class 文件 ---> 内存中的字节码

如果一个注解不声明自己的生命周期属于那个阶段,会默认为生命周期是 class 文件阶段。

3、注解的属性

(1)、定义基本类型的属性和应用属性

(2)、用反射的方式获得注解对应的实例对象后,再通过该对象调用属性对应的方法。

(3)、为属性指定缺省值;

(4)、Value 属性

如果注解中有一个名称为value 的属性,且只想设置value 的属性(即其它属性都采用默认值或只有一个value 属性)那么可以省略“value ”部分。

4、为注解增加高级属性

泛型:

    通过给javac编译器使用的,可以限制集合中的输入类型,让编译器挡住原程序中的非法输入,编译器编译带类型说明的集合时会去掉类型信息,使程序运行效率不受影响、对于参数化的泛型类型,getClass方法的返回值和原始类型相同。由于编译生成的字节码会去掉泛型的类型信息,只要跳过编译器,就可以往某个泛型集合中加入其它类型的数据。

泛型中的术语

1、ArrayList<E>的E成为类型变量或类型参数

2、整个ArrayList<Integer>成为参数化的类型

3、ArrayList<Integer>中的Integer成为类型参数的实例或实际类型参数

4、ArrayList成为原始类型

定义泛型方法

1java的泛型方法没有c++模板函数功能强大,java中的如下代码无法通过:

<T> add(T x, y){

return (T) (x+y);

}

2交换数组中的两个元素的位置的泛型方法语法定义:

static <E> void swap (E [] a,int in,int j){

t= a[i]; a[i] a[i]; a[i] 

}

定义泛型类型:

    如果类的实例对象中的多处都要用到用一个泛型,即这些地方引用的泛型要保持同一个实际类型时,这时候就要用泛型类型的方法进行定义,也就是类级别的泛型语法。类级别的泛型是根据引用该类名是指定的类型信息来参数化变量的。

------- android培训java培训、期待与您交流! ----------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值