JVM探究
面试常见:
- 请你谈谈你对JVM的理解?
- java8虚拟机和之前的变化更新?
- 什么是OOM,什么是栈溢出StackOverFlowError? 怎么分析?
- JVM的常用调优参数有哪些?
- 内存快照如何抓取,怎么分析Dump文件?
- 谈谈JVM中,类加载器你的认识
1.JVM的位置
JRE:java开发环境,包含了JVM
2.JVM的体系结构
图 .java->.class的变化
Java栈、本地方法栈、程序计数器不会有垃圾回收,否则程序会死掉
百分之99的JVM调优都是在方法区和堆(99%是堆)中调优,Java栈、本地方法栈、程序计数器是不会有垃圾存在的。
3. 类加载器
类是模板,是抽象的,类实例化得到的对象是具体的。所有的对象反射回去得到的是同一个类模板。
作用:加载Class文件~
类在经过Class Loader之后的变化
- 虚拟机自带的加载器
- 启动类(根)加载器 BootstrapClassLoader
- 扩展类加载器 ExtClassLoader
- 应用程序加载器 AppClassLoader
- 百度:双亲委派机制
4.双亲委派机制
双亲委派机制:安全
APP–>EXC—B0OT(最终执行)
// B0OT
// EXC
// APP
- 类加载器收到类加载的请求 Application
- 将这个请求向上委托给父类加载器去完成,一 直向上委托,直到启动类加载器 Boot
- 启动加载器检查是否能够加载当前这个类,能加载就结束, 使用当前的加载器,否则, 抛出异常,通知子加载器进行加载
- 重复步骤3
- Class Not Found异常就是这么来的
- Null:Java调用不到。Java早期的名字:C+± - Java = C++:去掉繁琐的东西,指针,内存管理~
Java语言保留了C的接口,这些方法就是用native(本地)修饰的,java通过native方法调用操作系统的方法
标签:Java,入门,探究,JVM,java,方法,Class,加载 From: https://www.cnblogs.com/chengbb/p/17047306.html