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接口

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值