注解(Annotation)JDK5.0引入
内置注解:
@Override:重写方法
@Deprecated:废弃
@SuppressWarnings:镇压警告
元注解(meta-annotation): 可自定义注解
@Target:描述注解的使用范围,传入value参数指定
@Retention:描述注解的生命周期,传入value参数指定 (runtime>class>sources)
@Documented:是否生成注解在Javadoc种
@Inherited:子类可以继承父类的注解
自定义注解
@interface 注解名{} 属性为注解的参数:可以使用默认值
反射(框架设计的灵魂)
实现动态(Reflection)自顶向下
**反射创建对象:**从实例化对象获得Class类(与new的方式相反)
Class.forName(“全限定类名”) 获取 Class对象,可以用Class对象实例化对象 ,一个类在内存中只有一个Class对象,在类被加载后,类会被封装在其中
获得Class类的方式:
类.getClass、Class.forName("")
Class类可以获取类的相关信息
Java内存:
*堆:*存放new的对象和数组、线程共享
*栈:*引用变量
方法区(堆):类的数据
类的加载:
类加载器ClassLoader(有类缓存的-JVM垃圾回收):类的Class类读入内存创建Class对象
类的Link:类的二进制数据合并到JRE
类的初始化:JVM执行类构造器()
通过反射创建对象本质是无参构造
也可以通过构造器创建对象Class.getDeclaredConstructor
Class(对象).getDeclaredXXX获取相关XXX
反射操作注解
ORM:对象关系映射
类和数据库表映射
作者:monster++
javase
底层实现
注解
反射
框架