WangBai_个人页

个人头像照片 WangBai
个人头像照片
28
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2024年11月

  • 11.24 16:29:20
    发表了文章 2024-11-24 16:29:20

    使用Kafka? 有什么好处 ?

    选择Kafka作为中间件,因其高吞吐量适合处理大量用户行为数据,支持实时推荐和运营看板展示。Kafka优点包括提升吞吐量、故障隔离、低耦合度和流量削峰,但也增加了架构复杂性和对Broker的依赖。
  • 11.24 16:28:36
    发表了文章 2024-11-24 16:28:36

    RabbitMQ的高可用机制 ?

    RabbitMQ基于Erlang语言,支持集群模式。普通集群通过分布式队列提高并发,但队列不在访问节点时需跨节点传递,且队列节点宕机会导致消息丢失。镜像集群在普通集群基础上增加主从备份,确保数据高可用,主节点故障时镜像节点可接替工作。
  • 11.24 16:27:41
    发表了文章 2024-11-24 16:27:41

    使用RabbitMQ如何保证消息不丢失 ?

    RabbitMQ通过发布者确认、回执机制、消息持久化及消费者确认等方案,确保消息从发送到接收的每个环节都能有效防止丢失。即便如此,特殊情况下仍可能丢失,如系统故障等。为此,可设计消息状态表,记录消息ID、内容、交换机、路由键、发送时间和签收状态等,结合定时任务检查并重发未签收消息,以进一步提升消息传输的可靠性。
  • 11.24 16:23:36
    发表了文章 2024-11-24 16:23:36

    什么情况下不应该创建索引?

    索引优化策略:避免为不常查询、低基数、或特定数据类型(如text, image, bit)的列创建索引,以免增加系统负担而无明显查询性能提升。当数据修改频率远高于查询时,也应避免创建索引。
  • 11.24 16:22:55
    发表了文章 2024-11-24 16:22:55

    如何解决数据库高并发问题?

    在Web服务框架中加入缓存层,存储高频访问数据,减轻数据库读取负担;增加数据库索引提升查询速度,但需注意索引数量;实施主从读写分离,优化数据处理;对数据库进行拆分,缩小表规模以加快查询;采用分布式架构,有效分散计算压力。
  • 11.24 16:21:47
    发表了文章 2024-11-24 16:21:47

    三大范式的特点

    第一范式确保数据库表中每列都是不可分割的基本数据项,无重复列;第二范式在满足第一范式基础上,要求每个实例被唯一标识,属性完全依赖于主键;第三范式在满足第二范式基础上,排除非主键信息的冗余,避免数据重复。
  • 11.24 15:39:34
    发表了文章 2024-11-24 15:39:34

    InnoDB与MyISAM实现索引方式的区别

    InnoDB和MyISAM均采用B+树索引,但在实现上有所不同。InnoDB的主键索引在叶子节点存储完整数据记录,辅助索引则存储主键值;而MyISAM的主键索引与数据文件分离,仅存数据地址,且主辅索引无区别,支持非唯一主索引。
  • 11.24 15:38:08
    发表了文章 2024-11-24 15:38:08

    数据库索引采用B+树不采用B树的原因

    B+树相较于B树,在数据存储、磁盘读写、查询效率及范围查询方面更具优势。数据仅存于叶子节点,便于高效遍历和区间查询;内部节点不含数据,提高缓存命中率;查询路径固定,效率稳定;特别适合数据库索引使用。
  • 11.24 15:21:30
    发表了文章 2024-11-24 15:21:30

    微信通知

    本文档介绍了通过企业微信API发送消息所需的前置条件及步骤,包括获取access_token和发送消息的具体Java代码示例。前置条件涉及企业微信与小程序的相关配置信息,如appId、secret等。示例代码展示了如何异步处理请求,并解析响应数据以获取用户列表,同时提供了处理医生编号的辅助方法。
  • 11.24 15:20:04
    发表了文章 2024-11-24 15:20:04

    发布模式

    蓝绿部署是一种应用发布技术,旨在减少发布时的中断时间和快速回滚。它通过维护两个几乎相同的生产环境(蓝绿系统)来实现,其中一个处于活动状态(绿色),另一个待命(蓝色)。新版本先在蓝色环境中测试,确认无误后切换用户至该环境,若发现问题可迅速回滚至绿色环境。此策略适用于内聚性较强的系统,对于复杂系统则需额外考量数据同步等问题。
  • 11.24 15:19:07
    发表了文章 2024-11-24 15:19:07

    类加载顺序

    本题考察Java类加载顺序及多态特性。类加载时,先加载父类静态块,再加载子类静态块,随后按顺序加载父类非静态块、父类构造函数、子类非静态块及子类构造函数。多态情况下,`Base b = new Sub();` 表现为编译时父类特性,运行时子类特性。若子类覆盖父类方法,在父类构造函数中调用该方法时,实际调用的是子类的方法,但此时子类未完全初始化,导致子类变量未赋值,故输出 `null`。示例代码中,因子类构造器未显式调用父类构造器,导致编译错误,需添加 `super("s");` 解决。
  • 11.24 15:18:06
    发表了文章 2024-11-24 15:18:06

    有效的括号

    本题要求判断一个仅包含 '(', ')', '{', '}', '[', ']' 的字符串是否为有效字符串。有效条件是:每个左括号必须被相同类型的右括号正确闭合。空字符串视为有效。示例代码通过栈结构实现,遍历字符串中的每个字符,遇到左括号则将对应的右括号压入栈中,遇到右括号时检查栈顶元素是否匹配,最终栈为空则字符串有效。
  • 11.24 15:17:15
    发表了文章 2024-11-24 15:17:15

    盛最多水的容器

    给定 n 个非负整数,每个数代表坐标中的一个点 (i, ai),画 n 条垂直线,寻找两条线与 x 轴构成的容器能容纳最多的水。此问题通过双指针法解决,初始指针分别位于数组两端,逐步向内移动较短的线,同时更新最大面积,直至两指针相遇。示例代码展示了 Java 实现,有效解决了该问题。
  • 11.24 15:16:31
    发表了文章 2024-11-24 15:16:31

    整数转罗马数字

    罗马数字由 I、V、X、L、C、D、M 七种字符组成,分别代表 1、5、10、50、100、500、1000。通常小数值位于大值右侧,如 12 表示为 XII;特殊情况下,小值位于大值左侧表示减法,如 4 表示为 IV。转换规则适用于 1 至 3999 的整数。
  • 11.24 15:15:40
    发表了文章 2024-11-24 15:15:40

    回文数

    本题要求判断一个整数是否为回文数,即正序和倒序读都相同。示例包括:121 (true), -121 (false), 10 (false)。进阶挑战是在不将整数转换为字符串的情况下解决问题。给出的 Java 代码通过将整数转换成字符串并反转比较实现功能。
  • 11.24 15:14:53
    发表了文章 2024-11-24 15:14:53

    字符串转换整数 (atoi)

    实现一个 `atoi` 函数,用于将字符串转换成整数。函数首先去除字符串前导空格,然后根据首个非空字符(正/负号或数字)决定转换规则,最终生成一个有符号整数。若字符串无效或超出 32 位有符号整数范围,则返回 0 或边界值(`INT_MAX` 或 `INT_MIN`)。示例包括处理前导空格、正负号、多余字符及超范围值等情形。
  • 11.24 15:14:06
    发表了文章 2024-11-24 15:14:06

    整数反转

    题目要求将32位有符号整数的每一位数字反转,并考虑溢出情况。提供了两种Java实现:一种通过字符串操作实现,另一种使用数学运算,后者更为高效且简洁。两种方法均在检测到溢出时返回0。
  • 11.24 15:12:56
    发表了文章 2024-11-24 15:12:56

    Z字形变换

    本题要求实现一个函数 `convert`,将给定字符串按指定行数以Z字形排列,再按行读取生成新字符串。示例中,字符串 "LEETCODEISHIRING" 在3行和4行下的变换结果分别为 "LCIRETOESIIGEDHN" 和 "LDREOEIIECIHNTSG"。Java代码通过列表存储每行字符,控制方向变化完成Z字形排列,最后合并各行得到结果。
  • 11.24 15:11:57
    发表了文章 2024-11-24 15:11:57

    最长回文子串

    给定字符串s,寻找其中最长的回文子串。通过动态规划解决,使用二维数组dp记录子串是否为回文,状态转移方程基于子串两端字符相同及内部子串是否回文。初始条件为单字符和双字符子串的判断。时间复杂度和空间复杂度均为O(n^2)。
  • 11.24 15:10:37
    发表了文章 2024-11-24 15:10:37

    正序数组中位数

    给定两个有序数组nums1和nums2,要求找到它们合并后的中位数,时间复杂度需达到O(log(m+n))。通过双指针法遍历两个数组,使用left和right变量记录遍历过程中的值,最终根据合并后数组长度的奇偶性返回中位数。此方法有效避免了直接合并数组带来的高时间复杂度问题。
  • 11.14 21:34:03
    发表了文章 2024-11-14 21:34:03

    SpringBoot自动装配的原理

    在Spring Boot项目中,启动引导类通常使用`@SpringBootApplication`注解。该注解集成了`@SpringBootConfiguration`、`@ComponentScan`和`@EnableAutoConfiguration`三个注解,分别用于标记配置类、开启组件扫描和启用自动配置。
  • 11.14 21:32:15
    发表了文章 2024-11-14 21:32:15

    Redis分布式锁如何实现 ?

    Redis分布式锁通过SETNX指令实现,确保仅在键不存在时设置值。此机制用于控制多个线程对共享资源的访问,避免并发冲突。然而,实际应用中需解决死锁、锁超时、归一化、可重入及阻塞等问题,以确保系统的稳定性和可靠性。解决方案包括设置锁超时、引入Watch Dog机制、使用ThreadLocal绑定加解锁操作、实现计数器支持可重入锁以及采用自旋锁思想处理阻塞请求。
  • 11.14 21:30:31
    发表了文章 2024-11-14 21:30:31

    Redis和Mysql如何保证数据⼀致?

    在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
  • 11.14 21:29:14
    发表了文章 2024-11-14 21:29:14

    Redis分片集群中数据是怎么存储和读取的 ?

    Redis集群采用哈希槽分区算法,共有16384个哈希槽,每个槽分配到不同的Redis节点上。数据操作时,通过CRC16算法对key计算并取模,确定其所属的槽和对应的节点,从而实现高效的数据存取。
  • 11.14 21:28:36
    发表了文章 2024-11-14 21:28:36

    Redis的数据淘汰策略有哪些 ?

    Redis 提供了 8 种数据淘汰策略,分为淘汰易失数据和淘汰全库数据两大类。易失数据淘汰策略包括:volatile-lru、volatile-lfu、volatile-ttl 和 volatile-random;全库数据淘汰策略包括:allkeys-lru、allkeys-lfu 和 allkeys-random。此外,还有 no-eviction 策略,禁止驱逐数据,当内存不足时新写入操作会报错。
  • 11.14 21:27:33
    发表了文章 2024-11-14 21:27:33

    Redis的数据过期策略有哪些 ?

    Redis 采用两种过期键删除策略:惰性删除和定期删除。惰性删除在读取键时检查是否过期并删除,对 CPU 友好但可能积压大量过期键。定期删除则定时抽样检查并删除过期键,对内存更友好。默认每秒扫描 10 次,每次检查 20 个键,若超过 25% 过期则继续检查,单次最大执行时间 25ms。两者结合使用以平衡性能和资源占用。
  • 11.14 21:26:23
    发表了文章 2024-11-14 21:26:23

    mysql的性能优化

    在数据库设计中,应选择合适的存储引擎(如MyISAM或InnoDB)、字段类型(如char、varchar、tinyint),并遵循范式(1NF、2NF、3NF)。功能上,可以通过索引优化、缓存和分库分表来提升性能。架构上,采用主从复制、读写分离和负载均衡可进一步提高系统稳定性和扩展性。
  • 11.09 18:40:36
    发表了文章 2024-11-09 18:40:36

    Java泛型类型擦除以及类型擦除带来的问题

    泛型擦除是指Java编译器在编译期间会移除所有泛型信息,使所有泛型类型在运行时都变为原始类型。例如,`List<String>` 和 `List<Integer>` 在JVM中都视为 `List`。因此,通过 `getClass()` 比较两个不同泛型类型的 `ArrayList` 实例会返回 `true`。此外,通过反射调用 `add` 方法可以向 `ArrayList<Integer>` 中添加字符串,进一步证明了泛型信息在运行时被擦除。
  • 发表了文章 2024-11-24

    使用Kafka? 有什么好处 ?

  • 发表了文章 2024-11-24

    如何解决数据库高并发问题?

  • 发表了文章 2024-11-24

    什么情况下不应该创建索引?

  • 发表了文章 2024-11-24

    使用RabbitMQ如何保证消息不丢失 ?

  • 发表了文章 2024-11-24

    RabbitMQ的高可用机制 ?

  • 发表了文章 2024-11-24

    三大范式的特点

  • 发表了文章 2024-11-24

    InnoDB与MyISAM实现索引方式的区别

  • 发表了文章 2024-11-24

    数据库索引采用B+树不采用B树的原因

  • 发表了文章 2024-11-24

    回文数

  • 发表了文章 2024-11-24

    盛最多水的容器

  • 发表了文章 2024-11-24

    微信通知

  • 发表了文章 2024-11-24

    类加载顺序

  • 发表了文章 2024-11-24

    字符串转换整数 (atoi)

  • 发表了文章 2024-11-24

    有效的括号

  • 发表了文章 2024-11-24

    发布模式

  • 发表了文章 2024-11-24

    整数转罗马数字

  • 发表了文章 2024-11-24

    Z字形变换

  • 发表了文章 2024-11-24

    整数反转

  • 发表了文章 2024-11-24

    正序数组中位数

  • 发表了文章 2024-11-24

    最长回文子串

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息