1.编译期只会把 java源文件 编译成 .class文件
在编译这个java源文件的时候,会把所有的有关的源文件,编译成.class文件,当然有些 组件本身在提供的时候就是 class文件
2.编译期,jvm内存没有任何分配,它的作用就是 编译 class文件
3.运行期: 包含类加载和执行
3.1类加载:类加载器会根据自己的检查路径,去找要加载的class文件,将加载的class文件的 class信息 保存在方法区,这一步就是运行期,要配置classPath的,只有配置了classPath,jvm才可以将 jdk目录下的class文件加载进方法区
启动类加载器:加载 jdk.lib目录下的class文件
扩展类加载器:加载jdk.lib.ext文件 下的所有class文件
应用程序加载器:加载用户 类路径 上 指定的类库,一般情况下开发者写的类默认由此加载器加载
3.2执行:去方法区找到 主入口的 class信息并 调用进 栈空间执行