摘要:
前言——理论基础学习 小顶堆 数据结构——堆【在线堆可视化地址:https://www.cs.usfca.edu/~galles/visualization/Heap.html】 堆是一种特殊的树,只要满足以下两个条件,它就是一个堆: ①、堆是一棵完整二叉树; ②、堆中某个节点的值总是不大于或不小于 阅读全文
摘要:
MQ官网速递:https://www.rabbitmq.com/getstarted.html MQ的优势 应用解耦:提高系统的容错性和可维护性; 异步提速:提升用户体验和系统吞吐量; 削峰填谷:提高系统稳定性。 MQ的劣势: 系统可用性降低:如果MQ服务器挂了,则关联业务都会受影响,需要保证MQ的 阅读全文
摘要:
在CMD执行net start mysql8时,控制台打印错误信息:mysql8 服务无法启动。服务没有报告任何错误: 我一开始看见也一头雾水,后来我打开data文件夹,发现里面有一个错误日志文件: 打开这个错误日志发现提示端口被占用: 我想到本电脑已经安装过MySQL5.7,使用的是默认端口330 阅读全文
摘要:
垃圾收集算法 垃圾收集算法包括:复制算法、标记整理算法、标记清除算法三类,都基于分代收集理论。 分代收集理论 当前虚拟机的垃圾收集都采用分代收集理论,就是根据对象存活周期的不同把内存分为几块。一般把java堆分成新生代和老年代,这样就可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次 阅读全文
摘要:
class字节码文件结构 举例 和下图的信息是对应的 类的访问权限查询手册 感谢图灵学院的司马老师!! 阅读全文
摘要:
JVM对象创建过程 类加载检查 虚拟机遇到一条new指令时,首先会去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过,如果没有,就必须先执行对应的类加载过程; new指令对应到语言层面就是new关键词、对象克隆、对象序列化等。 分配内 阅读全文
摘要:
JVM简单结构图 栈(线程) 一个方法对应一块栈帧内存区域,遵循栈的数据结构FILO(即first in last out,先进后出)原则; 栈帧内部可以放局部变量表、操作数栈【就是在程序运行过程中操作数的临时中转内存空间】、动态链接【在程序运行过程中把符号引用转换为直接引用】、方法出口; 程序计数 阅读全文
摘要:
点击名称即跳转到相关文章 JVM的类加载机制 JVM内存模型 JVM对象创建与内存分配机制 深入学习class文件的内部结构 JVM垃圾收集器 阅读全文
摘要:
类加载器初始化的简单流程图 类加载的过程简单流程图 类加载的过程: 加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main函数、new对象等。在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。 验证:校验字 阅读全文