JVM学习(第二天)
类加载器的分类
- BootStrapClassLoader:加载jre/lib里面的文件
- ExtClassLoader:加载jre/lib/ext里面的文件
- WebAppClassLoader:加载Classpath里面的文件
双亲委派
- 避免类的重复加载
- 防止核心API被篡改
- 流程
- 当AppClassLoader进行加载时,先会用ExtClassLoader去加载类,而ExtClassClassLoader就会用BootStrapClassLoader去加载类,BootStrapClassLoader就会自己创建类
- 如果都没有,就会去自己的目录加载
Tomcat为什么要自定义类加载器?
运行时数据区(Runtime Data Area)
- 方法区和堆区是多线程,可共享的,而程序计数器,本地方法栈,Java方法栈,每个线程都会有自己的。