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;
    }
}
相关推荐
码界奇点几秒前
Java设计模式精讲从基础到实战的常见模式解析
java·开发语言·设计模式·java-ee·软件工程
mit6.8241 分钟前
二维差分+前缀和
算法
民乐团扒谱机1 分钟前
自然的算法:从生物进化到智能优化 —— 遗传算法的诗意与硬核“
算法
希望有朝一日能如愿以偿4 分钟前
力扣每日一题:仅含1的子串数
算法·leetcode·职场和发展
四维碎片6 分钟前
【Qt】配置安卓开发环境
android·开发语言·qt
西游音月15 分钟前
(7)框架搭建:Qt实战项目之主窗体导航栏、状态栏
开发语言·qt
3***499616 分钟前
Swift Experience
开发语言·ios·swift
iFlow_AI20 分钟前
iFlow CLI Hooks 「从入门到实战」应用指南
开发语言·前端·javascript·人工智能·ai·iflow·iflow cli
Maybyy41 分钟前
Chart.js图标绘制工具库
开发语言·javascript·ecmascript
漂流瓶jz43 分钟前
SourceMap数据生成核心原理:简化字段与Base64VLQ编码
前端·javascript·算法