今日头条python面试题一

  • 聊项目,画项目架构图,画一个用户从发起请求到接收到响应,中间经过哪些服务,每个服务做什么事情的流程图。

  • 讲项目中的难点、挑战,你是如何解决的?

  • Redis 中有几种类型 & 各自底层怎么实现的 & 项目中哪个地方用了什么类型,怎么使用的?

  • Redis如何实现分布式锁,zk如何实现分布式锁,两者的区别。如果service还没执行完,分布式锁在Redis中已经过期了,怎么解决这种问题?

  • synchronized底层实现,加在方法上和加在同步代码块中编译后的区别、类锁、对象锁。

  • 锁升级的过程。

  • Java运行时区域及各个区域的作用、对GC的了解、Java内存模型及为什么要这么设计?

  • 对索引的理解,组合索引,索引的最佳实践

  • countDownLatch用过没有,在项目中如何使用的,对AQS的了解。

  • 写生产者消费者问题,考虑高并发的情况,可以使用Java 类库,白纸写代码。

  • 设计一个发号器,考虑集群和高并发的情况,要求发号器生成的id是递增趋势,通过id可以区分出来是今天生成的id还是昨天生成的id,但是生成的id中不能直接带有日期,要具有一定的混淆功能,白纸写代码

  • 一个二位数组,每个元素都可以往上下左右四个方向走,寻找最长递增路径。如下图所示,最长递增路径即红色字体路径。白纸写代码。