类的生命周期从加载开始,到连接,然后是初始化。而连接又包括验证、准备、和解析。
1、类的加载
类的加载是指把类的.class文件中的二进制数据读入到内存中,把它存放在运行时数据区中的方法区内,然后再堆去创建一个java.lang.class对象,用来封装类在方法区内的数据结构。
(运行数据区指的是java虚拟机所管理的那一块内存空间)
类的二进制数据的来源
Java虚拟机能够从多种来源加载类的二进制数据,包括:
- 从本地文件系统中加载类的.class文件,这是最常见的加载方式
- 通过网络下载类的.class文件
- 从ZIP、ZAR或其它类型的归档文件中提取.class文件
- 从一个专有数据库中提取.class文件
- 把一个Java源文件动态编译为.class
类的加载
类的加载粗略的讲是由虚拟机来完成的,确切的说是由类加载器完成的。类加载器可分为两种:
- Java虚拟机自带的加载器:
启动类加载器ÿ