文件)
在程序运行过程中,当要访问一个类时,若发现这个类尚未被加载,并满足类初始化的条件时,就根据要被初始化的这个类的全限定名找到该类的二进制字节流,开始加载过程
将这个字节流的静态存储结构转化为方法区的运行时数据结构...从哪里加载
JVM规范对于加载过程给予了较大的宽松度.一般二进制字节流都从已经编译好的本地class文件中读取,此外还可以从以下地方读取
从ZIP包中读取
Jar、War、Ear等
其它文件生成
由...从数据库中读取
将二进制字节流存储至数据库中,然后在加载时从数据库中读取.有些中间件会这么做,用来实现代码在集群间分发.
从网络中获取
从网络中获取二进制字节流.典型就是Applet....,称为“数组类型”.如:
String[] str = new String[10];
这个数组的数组类型是Ljava.lang.String,而String只是这个数组的元素类型....当程序在运行过程中遇到new关键字创建一个数组时,
由JVM直接创建数组类,再由类加载器创建数组中的元素类型.