面向对象回顾之类和对象
类是抽象的
对象是类的具体化
多个对象共享一个class对象
native本地方法,由操作系统的语言写的方法
- 获取类型的方式
类名.getClass();
对象.class;
ClassLoader的运用点
框架
class文件的加密和解密
热加载和热替换
远程调用可变参数
参数类型…参数名
只允许存在一个
有固定参数时,固定参数必须放在可变参数前面Java虚拟机类加载机制
public static void main(String[] args) throws Exception {
//实例化一个类加载器
URL url = new File("G:/").toURI().toURL();
//加载类的class文件
URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url},
ClassLoader.getSystemClassLoader());
//加载一个类
Class<?> loadClass = urlClassLoader.loadClass("Helloword");
//实例化一个类
Object newInstance = loadClass.newInstance();
//获得类中的一个方法
Method method = loadClass.getMethod("getAge");
//调用类的方法
Object invoke = method.invoke(newInstance);
System.out.println(invoke);
}
类加载过程
加载class文件到内存
通过class字节码创建Class对象,该对象包含了类信息
通过Class对象实例化一个对象,先计算需要的内存空间,然后开辟空间,返回地址clone的实现要领(深克隆)
必须重写父类的clone方法,让其可见
必须实现Cloneable接口