JVM基础

JVM基础

视频地址:
尚硅谷

看到第45集

JVM探究

在这里插入图片描述

jvm所处位置

在这里插入图片描述
在这里插入图片描述

jvm体系结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

类加载器及双亲委派机制

在这里插入图片描述

虚拟机

在这里插入图片描述
在这里插入图片描述

JVM的位置

在这里插入图片描述

JVM整体结构

在这里插入图片描述
在这里插入图片描述

JVM的生命周期

在这里插入图片描述
在这里插入图片描述

SUN Classic VM

在这里插入图片描述

Exact VM

在这里插入图片描述

HotSpot VM

在这里插入图片描述

内存结构概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

类加载器和类的加载过程

在这里插入图片描述

类的加载过程

在这里插入图片描述
在这里插入图片描述

链接

在这里插入图片描述
注意:静态变量术语类的变量
在这里插入图片描述

初始化

在这里插入图片描述

类加载器的分类

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意:java的核心类库都是由引导类加载器来完成的

public class Test1 {
    private int a=3;

    public static void main(String[] args) {
        //获取系统类加载器
        ClassLoader systemCloader=ClassLoader.getSystemClassLoader();
        System.out.println("系统类加载器:"+systemCloader); // sun.misc.Launcher$AppClassLoader@b4aac2
        //获取扩展类加载器
        ClassLoader extClassLoader=systemCloader.getParent();
        System.out.println("扩展类加载器:"+extClassLoader); // sun.misc.Launcher$ExtClassLoader@140e19d
        //尝试获取引导类加载器
        System.out.println("启动类加载器:"+extClassLoader.getParent()); //null
        //获取当前自定义类加载器
        System.out.println("自定义类加载器"+Test1.class.getClassLoader());  // sun.misc.Launcher$AppClassLoader@b4aac2
        //获取String类加载器  获取为null  说明String类由 引导类加载器 加载
        System.out.println("String类加载器:"+String.class.getClassLoader()); // null
    }
}

类加载器的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  // 获取引导类加载器可以加载 哪些路径下的文件
        URL[] urls= Launcher.getBootstrapClassPath().getURLs();
        System.out.println("*****************************************");
        System.out.println("获取引导类加载器可以加载 哪些路径下的文件");
        for (URL url:urls){
            System.out.println(url);
        }

引导类加载器可以加载的文件路径:
在这里插入图片描述
扩展类加载器可以加载的文件路径

 System.out.println("*****************************************");
        System.out.println("获取扩展类加载器可以加载 哪些路径下的文件");
        String extString=System.getProperty("java.ext.dirs");
        for(String str:extString.split(",")){
            System.out.println(str);
        }

在这里插入图片描述
在这里插入图片描述
注意:引导类加载器无法直接获取,因为它是由C和C++ 编写的。

使用自定义类加载器的原因

在这里插入图片描述
在这里插入图片描述

ClassLoader的常用方法

在这里插入图片描述
在这里插入图片描述

双亲委派机制原理

在这里插入图片描述
在这里插入图片描述

双亲委派机制的优势
在这里插入图片描述

沙箱安全机制

在这里插入图片描述

类的主动使用和被动使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行时数据区概述及线程

在这里插入图片描述
在这里插入图片描述

JVM中的线程

在这里插入图片描述
在这里插入图片描述

PC寄存器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

PC寄存器使用案例

进入编译后的class文件的目录,使用命令:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

PC寄存器常见的面试题

在这里插入图片描述
PC寄存器为什么要被设置成线程私有

在这里插入图片描述

虚拟机栈

在这里插入图片描述

java虚拟机栈是什么
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置栈内存的大小
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值