注解
- 内置注解
@Override //重写
@Test //单元测试
@Deprecated //废弃的,不推荐使用的方法
@SuppressWarnings("all") //镇压警告
- 元注解 :描述注解的注解
- @Target : 描述注解适用范围
- @Retention :表示需要在什么界别保存该注释信息,用于描述注解的生命周期 (SOURCE<CLASS<RUNTIME)
- @Document : 说明该注解被包含在javadoc中
- @Inherited : 说明子类可以继承父类中的该注解
@Target(value = {ElementType.METHOD,ElementType.TYPE})//表示该注解在方法和类上有效
@Retention(value = RetentionPolicy.RUNTIME) //表示该注解在运行时有效(SOURCE<CLASS<RUNTIME
@Documented //表示是否将我们的注解在javadoc中
@Inherited //表示子类可以继承父类的注解
@interface MyAnnotation{
}
如何自定义注解
public class Demo01 extends Thread{
@MyAnnotation(schools = {"清华","北大"})
public void test(){
}
}
@Target(value = {ElementType.METHOD,ElementType.TYPE})//表示该注解在方法和类上有效
@Retention(value = RetentionPolicy.RUNTIME) //表示该注解在运行时有效(SOURCE<CLASS<RUNTIME
@Documented //表示是否将我们的注解在javadoc中
@Inherited //表示子类可以继承父类的注解
@interface MyAnnotation{
//注解的参数:参数类型+参数名(); default 默认值 参数如果唯一 建议用value命名
String name()default "";
int age()default 0;
int id() default -1;//如果默认值-1 代表不存在
String[] schools();
}
反射
动态语言与静态语言
Class对象
public final Class getClass()
对于每个类来说他的Class对象是唯一的
java内存
什么是会产生类的初始化