当前位置: 首页 > 面试经验 >

途虎养车Java一二三面

优质
小牛编辑
86浏览
2023-03-28

途虎养车Java一二三面

9.20 一面35min

  • 算法

  • 秒杀项目

    • 核心问题:高并发下大量请求对数据库的压力(是读请求还是写请求的压力?分开讨论),是否能对瞬时压力进行平滑处理

    • 缓存怎么设计的?并发来自与写还是读?是否考虑了穿透、击穿问题?

    • 缓存淘汰机制,失效时间:到活动结束的时候

    • 考虑了缓存大量失效,穿透和击穿;对空值做缓存,穿透

    • ES怎么用的?

  • 线程池,七大参数,淘汰机制,描述线程池模型

  • 淘汰机制怎么选用

    • AbortPolicy中止策略:丢弃任务并抛出异常。比较关键的业务推荐使用该策略,这样在系统不能承载更大并发量的时候就能通过异常发现

    • DiscardPolicy丢弃策略:丢弃任务不抛异常。一些无关紧要的任务可以使用这个策略

    • DiscardOldestPolicyi弃老策略:根据实际业务来决定是否允许丢弃老任务

    • CallerRunsPolicy:由调用者处理。一般在不允许失败、对性能要求不高、并发量小的场景使用

  • 设计模式

    • 单例、工厂、职责链模式、代理模式、策略模式、多例模式

  • 数据库

    • 聚簇索引和非聚簇索引存储层面差异

      • 适用场景:聚簇索引主键索引、非聚簇索引二级索引辅助索引

  • 区块链

    • 哈希索引,区块链就是哈希索引构成的链表,不可篡改性,默克尔树,BTC,ETH

  • 职业规划

  • 反问:面试表现;项目部分描述的有些广,表达更结构化一些,行动方案和结果部分做一些优化,希望这块更详细一点。并发这块读的挑战、写的挑战怎么处理的。

  • 反问:几面:三面、一面二面技术面,三面hr面

  • 反问:区块链这块的建议

9.26 二面40min

  • 自我介绍

  • 秒杀项目

    • 加mq的意义?削峰,平滑掉

    • 抢完柜子发mq,如果这时候数据库处理失败了怎么办?

      • catch异常之后补偿机制

      • 程序崩了,重启服务,根据日志定位问题。有没有更智能一点的?

      • 通过数据库来反向更新redis

    • 用了ES

      • 比如图书馆上千万本书放数据库为什么不如ES?为什么数据库不合适?

      • 数据结构的问题,B+树IO次数更多

      • 模糊查询为什么B+树不好?

      • 倒排索引

    • 字典树

      • 字典树能解决模糊查询吗?不行

      • 因为它也是有序的

      • 用途,公共前缀

  • 掌握的最好的知识点:Netty

    • 线程模型?主从Reactor模型

    • work和boss线程池数量,为什么这样设计,为什么accept只需要一个线程?

      • 因为accept事件只需要建立一次连接,连接是可以复用的,accept只接受一次

      • 网络通信的流程
  • 反问

9.29 hrbp面 10min

  • 聊天

  • 哪个项目最具有挑战性,挑战性是什么?

  • 没有实习,自身有什么优势。优缺点

  • 你觉得自己最自豪的事是什么

  • 更倾向哪种leader

  • 被批评后怎么想的

-------

已经感谢信了,池子太深了
#秋招##Java##面经#
 类似资料: