jvm
双亲委派机制

什么是类加载器?
类加载器是jre的一部分,负责动态将类添加到Java虚拟机。
类加载分类
1、启动类加载器 bootstrap classloader :加载jre/lib/rt.jar
2、扩展类加载器 extension classloader :加载jre/lib/ext/*.jar
3、应用程序类加载器 application classloader:加载classpath上指定的类库
双亲委派机制
双亲委派机制是指当一个类加载器收到一个类加载请求时,该类加载器首先会把请求委派给父类加载器。每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。
双亲委派模型工作工程:
1.当Application ClassLoader 收到一个类加载请求时,他首先不会自己去尝试加载这个类,而是将这个请求委派给父类加载器Extension ClassLoader去完成。
2.当Extension ClassLoader收到一个类加载请求时,他首先也不会自己去尝试加载这个类,而是将请求委派给父类加载器Bootstrap ClassLoader去完成。
3.如果Bootstrap ClassLoader加载失败(在<JAVA_HOME>\lib中未找到所需类),就会让Extension ClassLoader尝试加载。
4.如果Extension ClassLoader也加载失败,就会使用Application ClassLoader加载。
5.如果Application ClassLoader也加载失败,就会使用自定义加载器去尝试加载。
6.如果均加载失败,就会抛出ClassNotFoundException异常。
Native,方法区,栈

- 带了native关键字的,表示java的作业范围达不到了,会去调用c语言的库
- 进入本地方法栈JNI
- JNI是为了扩展java的使用,去调用其他编程语言为java所用
- 它在内存中专门开辟了一块标记区域:Native Method Stack,登记native方法
new一个对象发生的

栈里面存储的东西
8大基本类型,对象引用,实例方法
堆
堆内存满了,OOM,堆内存不够
关于jvm调优



GC如何判断对象可以回收
java并没有采用引用计数法


.
浙公网安备 33010602011771号