jvm的位置
jvm的体系结构
-
Stack、native method stack、程序计数器肯定不会有垃圾回收
-
99%JVM调优是调优方法区和堆
类加载器
作用:加载class文件
-
启动类(根)加载器 BOOT
-
扩展类加载器 EXC
-
应用程序加载器 APP
-
用户自定义类加载器
双亲委派机制:安全
-
类加载器收到类加载请求
-
将这个请求自下而上判断是否加载过,一直向上委托,直到boot加载器(蓝色)
-
类加载器自上而下检查是否能够加载当前这个类,能加载就结束,使用当前的加载器,否则抛出异常,通知子加载器进行加载(红色)
-
重复步骤3
Class Not Found~
null:java调用不到~C、C++
java==C+±-:去掉繁琐的东西,指针,内存管理~
作用:
-
防止重复加载同一个.class
-
保证核心.class不被篡改
沙箱安全机制
将java代码限定在JVM特定的运行范围中,并严格限制代码对本地资源访问
基本组件:
- 字节码校验器:确保java类文件遵循java语言规范。(核心类不经过)
- 类装载器:
- 防止恶意代码去干涉善意代码;//双亲委派机制
- 守护了被信任的类库边界
- 将代码归入保护域,确定了diamante可以进行哪些操作
native(本地方法区)
-
凡是带了native关键字的,说明java的