类是抽象的 对象是类的具体化 多个对象共享一个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接口
