Java面向对象之类加载过程

来源:互联网 发布:广东省社会科学院知乎 编辑:程序博客网 时间:2024/05/15 02:39

面向对象回顾之类和对象

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