【RocketMQ学习】2.玩转各种消息1 前言上一章节,主要介绍了RocketMQ的物理架构和逻辑概念。这一章主要列举其中的消息类型以及各自的应用场景,举例。 2 普通消息2.1 发送RocketMQ支持以下三种方式发送一条MQ:同步发送、异步发送、单向发送。各自优劣见下表: 2023-07-04 RocketMQ学习RocketMQ 消息
【LeetCode】109.有序链表转换二叉搜索树1 问题给定一个单链表的头节点 head,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差不超过 1。 示例 1示例1 输入: head = [-10,-3 2023-07-04 算法LeetCode 二叉树 数据结构 递归 快慢指针
【LeetCode】108.将有序数组转换为二叉搜索树1 问题给你一个整数数组 nums ,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。 高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1示例1 输入:nums = [-1 2023-07-04 算法LeetCode 二叉树 数据结构 二分法 递归
【LeetCode】117 填充每个节点的下一个右侧节点指针II1 问题给定一个二叉树:struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针 2023-06-30 算法LeetCode 二叉树 数据结构 BFS
【RocketMQ学习】1.基础知识1 消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的异步消息传递机制对分布式系统中的其余各个子系统进行集成。 1.1 作用解耦、异步、削峰、分发 2 物理架构RocketMQ底层架构 启动流程: NameSer 2023-06-30 RocketMQ学习RocketMQ
【JVM学习】5.HostSpot的细节1 前言前一章节介绍了常见的对象存活判定算法和垃圾收集算法,里面提到了很多专有名词,这一章节主要就这些专有名词,加上自己的理解进行详细介绍。 2 三色标记(Tri-color Marking)在三色标记法之前有一个算法叫Mark-And-S 2023-06-30 JVM学习JVM 三色标记 安全点 跨代引用 写屏障
【JVM学习】4.垃圾回收机制及算法1 定义垃圾收集器(Garbage Collector,下文简称GC)。 程序计数器、虚拟机栈、本地方法栈随线程而生,也随线程而灭; 栈帧随着方法的开始而入栈,随着方法的结束而出栈。这几个区域的内存分配和回收都具有确定性,在这几个区域内不需 2023-06-28 JVM学习JVM GC算法
【JVM学习】3.JVM中的对象1 JVM 中对象的创建过程主要包括以下几个过程:检查加载、内存分配、内存空间初始化、设置、对象初始化。 1.1 检查加载当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查 2023-06-27 JVM学习JVM 类加载 内存分配
【LeetCode】116. 填充每个节点的下一个右侧节点指针1 问题给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Nod 2023-06-26 算法LeetCode 二叉树 数据结构 DFS BFS
【JVM学习】2.内存区域1 运行时数据区域在 JVM 中,JVM 内存主要分为堆、程序计数器、方法区、虚拟机栈和本地方法栈等。 按照与线程的关系也可以这么划分区域: 线程私有区域:一个线程拥有单独的一份内存区域。 线程共享区域:被所有线程共享,且只有一份。JVM 2023-06-26 JVM学习JVM JVM内存区域
【JVM学习】1.JVM基础知识1 JVM 从编译到执行首先给出基于JDK8的JAVA SE产品组件,里面包含了JDK,JRE,JVM三者之间的关系:the components of Oracle's Java SE products JVM:Java Virtual 2023-06-26 JVM学习JVM
【MySQL学习】9.锁1 InnoDB中的锁在MySQL官方文档中(version 5.7),InnoDB中有以下几种锁: Shared and Exclusive Locks:共享(乐观)锁、排他/互斥/独占锁 Intention Locks:意向锁 Rec 2023-06-21 MySQL学习MySQL 锁