1.注解
- 什么是注解
- Annotation是jdk5出来的技术
- 作用:
- 不是程序本身,对程序做出解释
- 可以被其它程序读取
- 常用注解:
- @Override \
- @SuppressWarnings 抑制警告
- @Deprecated 提示过时,1.8已停用
- 元注解-meta-annotation
- 解释注解的注解,可以再java.lang.annotation中找到
- 四大元注解:
- @Retention :生命周期
- @Document: 是否生成在javadoc
- @Inherited : 子类可以继承父类的注解
- @Target:注解可以作用的位置,使用范围
/*
* 1.注解可以不用加参数
* 2.参数可以设置默认值,无默认值,调用注解时,必须加参数
* 3.参数是数组,且只有一个参数,可以不写参数名
* */
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{
String value();
}
2. 反射
- 静态语言:程序运行时,不能改变其结构。例如,c、c++
- 动态语言:程序运行时,可以改变其结构。例如、javascript、python等
- 准动态语言:java可以通过反射机制,在运行期间动态的操作类的方法和属性
优点:
- 可以动态的创建和编译对象,灵活性高,例如:写代码时的提示信息
缺点:
3.泛型
- 泛型在编译之后,就擦除了
- 确保数据安全性、免去强制类型转换问题