java后端工程师进修ing(研一版‖day44)

目录

今日总结

详细内容

java随征录

kafka自动生成的data目录是用来干什么的

Broker启动的流程

科研随探录

八股随笔录

代码随想录


今日总结

  • java随征录------kafka(完结)
  • 科研随探录------
  • 八股随笔录------MySQL面试篇(6/7)
  • 代码随想录------构造平衡二叉搜索树

详细内容

java随征录

kafka自动生成的data目录是用来干什么的

存储数据的核心位置,保存的数据和文件如下

  1. 日志段文件
    Kafka的消息是以日志的形式存储的,每个分区由多个日志段文件组成。.log文件是实际存储消息的文件,.index文件是偏移量索引文件,.timeindex文件是时间戳索引文件
  2. 事务日志文件
    如果Kafka开启了事务功能,那么在 data 目录下会有事务日志文件
  3. 分区元数据文件
    存储分区的相关信息
  4. 日志清理相关文件
    Kafka为了控制磁盘空间的使用,会定期进行日志清理操作。在文件中记录那些日志段被清理过,那些还需要清理

Broker启动的流程

  1. 注册Breoker节点
  2. 监听/controller节点
  3. 注册/controller节点
  4. 通知集群的变化
  5. 连接Broker,发送集群的相关数据

科研随探录

八股随笔录

  • mysql里的锁
  1. 全局锁:会将整个数据库处于只读状态,其他线程一下操作处于堵塞状态。

  2. 表级锁:有以下几种

表锁:表锁会限制别的线程的操作,还会限制本线程接下来的读写操作

元数据锁:当对数据库表进行操作时,会自动给这个表加上MDL、

意向锁:

  1. 行级锁:InnoDB引擎是支持行级锁的

  2. 记录锁:锁住的是一条记录

  3. 间隙锁:只存在于可重复读隔离级别,为了解决可重复读隔离级别下幻读的现象

  4. 临键锁:锁定一个范围,并锁定记录本身。

  • 日志文件
  1. redo log重做文件:是InnoDB存储引擎生成的日志,实现了事务的持久性,只要用于故障恢复

  2. undo log回滚日志:是InnoDB存储引擎层生成的日志,实现了十五中的原子性,

  3. bin log二进制日志:是server层生成的日志,用于数据备份和主从复制

  4. relay log中继日志:用于主从复制场景下

5.慢查询日志

代码随想录

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 平衡 二叉搜索树。

示例 1:

复制代码
输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:
java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    // int length = nums.length;
    // TreeNode root = new TreeNode(nums[length/2]);
    // int i = 0;
    // public TreeNode sortedArrayToBST(int[] nums) {
    //     if(i == length/2) {
    //         i++;
    //     }
    //     if(root.val > nums[i]) {
    //         TreeNode node = new TreeNode(nums[i]);
    //         i++;
    //         root.left = node;
    //         return new TreeNode sortedArrayToBST(nums);
    //     }
    //     if(root.val < nums[i]) {
    //        TreeNode node = new TreeNode(nums[i]);
    //         i++;
    //         root.right = node;
    //         return new TreeNode sortedArrayToBST(nums);
    //     }
    //     if(i == nums.length) {
    //         return root;
    //     }
    // }
    public TreeNode sortedArrayToBST(int[] nums) {
        return dfs(nums,0,nums.length - 1);
    }

    public TreeNode dfs(int[] nums, int left, int right) {
        if(left > right) {
            return null;
        }
        int mid = left + (right - left) / 2;
        TreeNode root = new TreeNode(nums[mid]);
        root.left = dfs(nums,left,mid - 1);
        root.right = dfs(nums,mid + 1,right);
        return root;
    }
}
相关推荐
lazily-c1 天前
Web后端开发总结
java·学习·web·1024程序员节
liu****1 天前
4.基础开发工具(一)
linux·开发语言·1024程序员节
文火冰糖的硅基工坊1 天前
[人工智能-大模型-72]:模型层技术 - 模型训练六大步:①数据预处理 - 基本功能与对应的基本组成函数
开发语言·人工智能·python
不是老弟1 天前
rwqsd
数据结构·c++·算法
小龙报1 天前
《C语言疑难点 --- 字符函数和字符串函数专题(上)》
c语言·开发语言·c++·算法·学习方法·业界资讯·visual studio
凭君语未可1 天前
深度解析Java的多态特性
java·开发语言
csbysj20201 天前
DTD 元素:XML 与 SGML 文档结构解析指南
开发语言
傻童:CPU1 天前
C语言练习题
c语言·开发语言
zbh06041 天前
洛谷P5788 【模板】单调栈——单调栈
数据结构·算法