小白必看!mysql覆盖索引创建

2021/7/12 2:05:48

本文主要是介绍小白必看!mysql覆盖索引创建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

# 一、内存与线程 ## 1、内存结构 内存是计算机的重要部件之一,它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。JVM的内存结构规定Java程序在执行时内存的申请、划分、使用、回收的管理策略,通说来说JVM的内存管理指运行时数据区这一大块的管理。 ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210711/1626017469566060.jpg) ## 2、线程运行 JVM中一个应用是可以有多个线程并行执行,线程被一对一映射为服务所在操作系统线程,调度在可用的CPU上执行,启动时会创建一个操作系统线程;当该线程终止时,这个操作系统线程也会被回收。 ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210711/1626017469762781.jpg) 在虚拟机启动运行时,会创建多个线程,数据区中有的模块是线程共享的,有的是线程私有的: ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210711/1626017469989844.jpg) 线程共享:元数据区、堆Heap; 线程私有:虚拟机栈、本地方法栈、程序计数器; 单个CPU在特定时刻只能执行一个线程,所以多线程通过几块空间的使用,然后不断的争抢CPU的执行时间段。 # 二、元数据空间 **基本描述** 方法元空间(方法区)在JVM启动的时候被创建,是被各个线程共享的内存空间,用于存放类和方法的元数据以及常量池,比如Class和Method。 在实际的开发中,经常因为加载的类太多,进而导致内存溢出问题,这样可以对元空间的大小进行扩展。 **与堆的关系** ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210711/1626017469621329.jpg) 元空间存放加载的类信息,当类被实例化时,堆中存储实例化的对象信息,并且通过对象类型数据的指针找到类。 # 三、堆空间 **基本描述** JVM启动时创建堆区,是内存管理的核心区,通常情况下也是最大的内存空间,是被所有线程共享的,几乎所有的对象实例都要在堆中分配内存,所以这里也是垃圾回收的重点空间。 **堆栈关系** ![](http://www.www.zyiz.net/i/li/?n=2&i=images/20210711/1626017470758310.jpg) 栈是JVM运行时的单位,堆是存储单位,当栈中方法结束,相关对象失去所有引用后,不会马上被移除堆空间,要等到垃圾收集器运行的时候。 # **感受:** 其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。 特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。 **也祝愿各位同学,都能找到自己心动的offer。** 分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档,**[需要的朋友可以【点赞+关注】戳这里即可免费获取](https://gitee.com/vip204888/java-p7)** ![拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"](http://www.www.zyiz.net/i/li/?n=2&i=images/20210711/1626017470148874.jpg)

这篇关于小白必看!mysql覆盖索引创建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程