Java面向对象之类加载过程

面向对象回顾之类和对象

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

你可能感兴趣的:(技术之路)