1、内置注解
@Override 重写
@Deprecated 过期,不建议使用
@SuppressWarnings 抑制警告
2、元注解
元注解是注解其他注解的注解
@Target(value=' ...') 表示在什么范围内有用
@Retention 表示注解需要在什么级别保存该注释信息 SOURCE<CLASS<RUNTIME
@Document 表示该注解将被包含在javadoc中
@Inherited 表示子类可以继承父类中的注解
3、自定义注解
(public) @interface 注解名{定义内容}
4、静态语言vs动态语言
动态语言:是一类在运行时可以改变其结构的语言,如python,C#、js、PHP
静态语言是运行时结构不可变的语言,如Java,c,c++
Java又可以称之为准动态语言,因为Java中的反射机制可以使其成为动态语言
5、Class
一个类只有一个Class对象
(1)创建类的Class的方式
1 public class Test{ 2 //测试Class类的创建方式有哪些 3 public static void main(String[] args) { 4 //方式1:通过对象.getClass()获得 5 Person person1 = new Person(); 6 Class> c1 = person1.getClass(); 7 8 //方式2:通过Class.forName("包名") 9 Class c2 = Class.forName("com.kuang.Student"); 10 11 //3、通过类名。class获得 12 Class c3 = Person.class; 13 14 //c1.hashCode(), c2.hashCode(), c3.hashCode()一样,表示只有一个Class 15 16 } 17 }
(2)哪些类型可以有class对象
class类/infterface/数组[]/...
注意:只要类型一样,就是一个Class,hashcode都是一样的