反射
在运行状态中,对于任意一个类,都能知道这个类的属性和方法
作用
如果给定一个类名,就可以通过反射机制获取类的所有信息,也可以动态的创建对象和编译
原理
java语言在编译之后会生成一个class文件,反射就是通过字节码文件找到其类中的方法和属性
四大类
- Class:类的对象
- Constructor:类的构造方法
- Field:类的属性对象
- Method:类的方法
克隆
浅克隆
实现Cloneable接口并重写Object的clone()方法
深克隆
克隆类实现Serializable接口,通过对象的序列化和反序列化实现克隆
Java类加载机制
.java文件变编译成字节码文件.class,然后类加载器会读取这个文件,并转换成java.lang.Class的实例,JVM利用newInstance之类的方法创建其真正的对象
类加载器
- ClassLoader:其他类加载的父类
- AppClassLoader:系统类加载器,加载开发者在项目编写的类
- BootstrapClassLoader:根加载器,不继承ClassLoader,由JVM内部实现,加载java核心类
- Extra ensionClassLoader:拓展加载器,加载Java核心拓展类
双亲委托
每加载一个类,先获取一个系统加载类的实例,然后向上级层层请求,由最上级优先去加载。