java类的加载

类加载器

加载类的时候需要有类加载器
引导类加载器不可以获取 他是祖宗
扩展类加载器是ext目录下的jar包的加载器 他是父类
自己写的类 加载器都是系统类加载器 他是儿子
在这里插入图片描述

  ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();//系统加载器

        ClassLoader parent = systemClassLoader.getParent();//扩展类加载器
        ClassLoader parent1 = parent.getParent();// 引导类加载器 它的值是null

输出结果
在这里插入图片描述

类的加载

主动引用

  1. 声明子类时 父类也会被加载 new的时候

  2. 通过反射 获取class对象的时候 也会加载

被动引用

  1. 通过子类调用父类的静态方法 父类不会加载 (没有new 直接调用)

  2. new 数组类型的时候不会加载

  3. 调用常量 final类型的 不会被加载

类加载是通过类加载器把类加载到内存 然后连接 然后初始化的过程

每一个类在加载的时候都会生成一个Class对象 把类加载到内存 会把静态东西和代码 还有常量池加载到内存

再new的时候 都是去找这个class对象
这是连接

在这里插入图片描述

并且如果你有一个包和java自带的包名相同 不会识别 是双亲委派机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值