JVM探究
大致结构图
类加载器
作用:加载Class文件
组成沙箱的基本组件:
字节码校验器
(bytecode verifier):确保Java类文件遵循Java语言规范,这样可以帮助Java程序实现内存保护,但并不是所有的类文件都会经过字节码校验,比如核心类,java、javax- 类装载器(class loader):其中类装载器在3个方面对Java沙箱起作用
- 它防止恶意代码去干涉善意的代码 双亲委派机制
- 它守护了被信任的类库便捷
- 它将代码归入保护域,确定了代码可以进行哪些操作
native
凡是带了native关键字的,说明java 的作用范围达不到了,需要返回调用底层C语言的库。会进入本地方法栈,调用本地方法接口JNI。他在内存区域中专门开辟了一块标记区域:Native Method Stack,登记native方法,最终执行的时候,通过JNI加载本地方法库中的方法。
JNI作用:扩展Java的使用,融合不同的编程语言为Java所用
方法区中存在的
static,final,Class,常量池
栈
栈中不会存在垃圾
八大基本类型 + 对象引用 + 实例的方法