2025年腾讯技术笔试题库及答案.docxVIP

  • 3
  • 0
  • 约1.34万字
  • 约 34页
  • 2025-10-21 发布于四川
  • 举报

2025年腾讯技术笔试题库及答案

一、后端开发方向

1.选择题(每题3分,共15分)

(1)以下关于Java垃圾回收器的描述,错误的是:

A.G1收集器将堆划分为多个Region,支持并发标记

B.ZGC通过颜色指针和读屏障实现几乎停顿时间不随堆大小增长而增加

C.CMS收集器的“并发标记”阶段会STW(StopTheWorld)

D.Shenandoah收集器与ZGC类似,目标是实现亚毫秒级停顿

答案:C

解析:CMS的“并发标记”阶段是与用户线程并发执行的,不会STW;STW发生在初始标记和重新标记阶段。

(2)MySQL中,关于索引优化的说法正确的是:

A.为频繁查询的字段组合创建联合索引时,应将区分度低的字段放在前面

B.覆盖索引可以避免回表,因此应尽可能让查询仅访问索引列

C.对TEXT类型字段创建全文索引时,建议使用B+树索引

D.索引越多越好,能显著提升所有查询的性能

答案:B

解析:A错误,联合索引应将区分度高的字段前置;C错误,TEXT类型的全文索引通常使用倒排索引;D错误,索引会增加写操作的开销,需权衡。

(3)分布式系统中,以下场景适合使用Paxos算法的是:

A.电商大促时订单系统的全局序列号生成

B.微服务配置中心的配置一致性同步

C.实时推荐系统的用户行为日志收集

D.视频直播的高并发流数据分发

答案:B

解析:Paxos用于解决分布式系统中的一致性问题,配置中心需要多节点间的配置强一致,适合Paxos;A通常用雪花算法,C用消息队列,D用CDN。

(4)在Spring框架中,关于依赖注入(DI)的描述错误的是:

A.@Autowired默认按类型注入,@Resource默认按名称注入

B.构造函数注入比字段注入更符合“依赖倒置原则”

C.使用@Lazy注解可以延迟Bean的初始化到首次使用时

D.所有被@Service标记的类都会被自动注入到Spring容器中

答案:D

解析:需确保类所在包被@ComponentScan扫描到,否则不会自动注入。

(5)Kafka中,关于消费者组(ConsumerGroup)的说法正确的是:

A.一个消费者组内的消费者数量应大于等于主题的分区数

B.消费者组通过offset提交来记录消费进度,默认是自动提交

C.同一个分区的数据会被同一消费者组内的多个消费者消费

D.消费者组的Rebalance操作不会影响消息的顺序性

答案:B

解析:A错误,消费者数量超过分区数时,多余消费者不参与消费;C错误,同一分区数据只能被组内一个消费者消费;D错误,Rebalance可能导致消息重复或顺序短暂错乱。

2.简答题(每题8分,共24分)

(1)请解释分布式事务中“两阶段提交(2PC)”的执行流程,并说明其优缺点。

答案:

执行流程:

①准备阶段(Prepare):协调者向所有参与者发送准备请求,参与者执行事务操作(如写redo/undo日志),并反馈是否可以提交。

②提交阶段(Commit):若所有参与者反馈“可提交”,协调者发送提交指令,参与者提交事务;若任一参与者反馈“不可提交”,协调者发送回滚指令,参与者回滚事务。

优点:实现强一致性,适用于对数据一致性要求高的场景(如银行转账)。

缺点:①单点问题(协调者故障导致系统阻塞);②性能开销大(两次网络交互,且准备阶段需锁定资源);③同步阻塞(参与者在准备阶段需锁定资源,直到提交或回滚)。

(2)给定一个高并发的秒杀系统,用户下单时需校验库存并扣减,设计一个基于Redis的原子性库存扣减方案,要求防止超卖且支持高并发。

答案:

方案设计:

①将库存存储为Redis的String类型(如key=“sku:1001:stock”,value=初始库存数)。

②使用Lua脚本实现原子扣减逻辑,避免网络延迟导致的竞态条件。Lua脚本示例:

```lua

localstock=tonumber(redis.call(GET,KEYS[1]))

ifstockandstock=tonumber(ARGV[1])then

redis.call(DECRBY,KEYS[1],ARGV[1])

return1扣减成功

else

return0库存不足

end

```

③调用时通过`EVAL`命令执行该脚本,保证原子性(Redis单线程执行Lua脚本)。

④补充:可结合Redis的分布式锁(如Redlock)防止同一用户重复请求,但需注意

文档评论(0)

1亿VIP精品文档

相关文档