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

---------------------------------------------------------------- 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能找到,就直接加载,否则再传回让儿子加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值