java虚拟机学习记录

java虚拟机主要讲如下三点:

  1. java虚拟机的类加载

    java文件、编译二进制文件、classloader原理、进入java虚拟机的运行数据区

    classloader分为三类,bootsttap ClassLoader(java虚拟机默认的父,c++实现,加载java api和object)、Extension ClassLoader(jdk扩展类库)、SystemClassLoader(用户自定义 classpath)

    classloader工作原则,委托原则,两个方向(向上和向下),至底向上寻求经验(是否干过这个活),至顶向下找到第一个能够加载完成任务的人(是否能干这个活)。

    举例:对于myclass.class首先从SystemClassLoader开始询问是否已经加载,然后向ExtensionClassLoader询问,然后向BootStrap ClassLoader询问是否已经加载,如果都没有加载,开始由BootStrap开始尝试重新加载,如果bootStrap没有找到,交给Extension开始尝试加载,如果extension没有找到,交给System开始加载。

    这就是classLoader的自底向上检查是否已经加载,自顶向下尝试加载的原则。

    与工作对应,开始一个新任务,首先向上一级一级的询问是否已经开发过这个任务,如果已经有那就可以直接说明完成,如果没有,那就由上级向下一级级的提供经验帮助。

    下层的加载器能够看到上层加载器中的类,反之则不行,也就是是说委托只能从下到上。

    类加载器可以加载一个类,但是它不能卸载一个类。但是类加载器可以被删除或者被创建。

  2. java虚拟机的内存控制原理

  3. java虚拟机的cup控制原理


你可能感兴趣的:(java虚拟机学习记录)