Java中类的生命周期

本文详细介绍了Java类的生命周期,包括加载(加载二进制数据、验证、准备、解析)、初始化(静态变量赋值、执行初始化语句)和卸载。类加载遵循父亲委托机制,由类加载器完成。初始化在首次主动使用类时触发,如创建实例、调用静态方法等。Java虚拟机自带的类加载器加载的类不会被卸载,而用户自定义类加载器加载的类可被卸载。
摘要由CSDN通过智能技术生成

类的生命周期从加载开始,到连接,然后是初始化。而连接又包括验证、准备、和解析。
在这里插入图片描述

1、类的加载

类的加载是指把类的.class文件中的二进制数据读入到内存中,把它存放在运行时数据区中的方法区内,然后再堆去创建一个java.lang.class对象,用来封装类在方法区内的数据结构。
(运行数据区指的是java虚拟机所管理的那一块内存空间)
在这里插入图片描述

类的二进制数据的来源

Java虚拟机能够从多种来源加载类的二进制数据,包括:

  • 从本地文件系统中加载类的.class文件,这是最常见的加载方式
  • 通过网络下载类的.class文件
  • 从ZIP、ZAR或其它类型的归档文件中提取.class文件
  • 从一个专有数据库中提取.class文件
  • 把一个Java源文件动态编译为.class

类的加载

类的加载粗略的讲是由虚拟机来完成的,确切的说是由类加载器完成的。类加载器可分为两种:

  • Java虚拟机自带的加载器:
    启动类加载器(根类加载器)
    拓展类加载器
    系统类加载器
  • 用户自定义的类加载器:
    是java.lang.ClassLoader类的子类实例,用户可以
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值