- 其它学习参考链接:
- Java虚拟机(英语:Java Virtual Machine,缩写为JVM)
一种能够执行Java bytecode的虚拟机,以堆栈结构机器来进行实做。最早由Sun微系统所研发并实现第一个实现版本,是Java平台的一部分,能够执行以Java语言写作的软件程序。
Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。通过对中央处理器(CPU)所执行的软件实现,实现能执行编译过的Java程序码(Applet与应用程序)。
- 类加载器
Java字节码的组织单位之一是类。类加载器实现必须识别并加载任何为Java类格式的文件。任何实现也可识别其他二进制文件,但必须识别类文件。
类加载器以下列严格顺序执行三个基础任务:
- 加载:寻找并导入特定类型的二进制数据;
- 链接:执行验证、准备及(可选)解析操作;
- 验证:确保导入类型的正确性。
- 准备:为类变量分配内存并初始化内存为默认值。
- 解析:将类型的符号引用转化为直接引用。
- 初始化:调用初始化类变量至正确起始值的Java代码。
通常而言,共有两种类加载器类型:引导类加载器(Bootstrap Class Loader)及用户定义类加载器(User Defined Class Loader)。
每款Java虚拟机实现均必须有加载受信类的引导类加载器。
- jvisualvm 监控工具
VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的).