您的位置:首页 > 职场人生

黑马程序员 java高新技术之注解,泛型,类加载器

2013-08-04 23:45 381 查看
---------------------------------------------------------------- android培训、java培训、期待与您交流! ----------------------------------------------------------------------------------------

一:注解

即程序的一种标记,java编译器可以通过反射来了解你的类及各种元素有无标记,看你有什么标记就去做相应的事。

//压缩警告,允许调用过时方法

@SuppressWarnings("deprecation")

@Deprecated 表明方法已过时

@override 表明是一个重写方法

元注解

@Retention() 声明定义注解的生命周期

RetentionPolicy.SOURCE 注解在源文件中

RetentionPolicy.CLASS 在class文件中

RetentionPolicy.RUNTIME 在运行时,即能被加载到内存

@target(ElementType.METHOD) 用于说明注解加在方法上,还能加在类上等。

注解属性

public @interface ItcastAnnotation {

 //注解有一个color方法

 String color() default("blue");

 String value();

 int [] arrayAttr() default{4,5,6};

 EnumTest.TrafficLamp lamp() default EnumTest.TrafficLamp.Red;

 MetaAnnotation annotationAttr() default @MetaAnnotation("zcb");

 Class classAttr() default String.class;

}

二,泛型

泛型是给编译器看的,程序运行的时候已经去掉了类型

1,定义泛型

//泛型举例,交换任意数组的两个元素,T不能是基本数据类型

 public static <T> void swap(T[] a, int i, int j)

 {

  T temp=a[i];

  a[i]=a[j];

  a[j]=temp;

 }

注意:泛型定义返回值类型前。

2,当一个变量被声明为泛型时,只能被实例变量和方法调用,而不能被静态变量和静态方法调用。因为静态成员是所有参数化的类所共享的,所以静态成员不该有类级别的类型参数

三,类加载器

虚拟机一初始化就有的类加载器BootStrap-->JRE/lib/rt.jar

儿子加载器:ExtClassLoader-->JAE/lib/ext/*.jar

孙子加载器:AppClassLoader-->classpath指定的所有jar或目录

类加载器采用委托机制,即App先接到类,并不直接加载,而是交给Ext加载,而Ext再交给BootStrap,如果Boot能找到,就直接加载,否则再传回让儿子加载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: