工作5年,主要做计费项目

面试者背景 5年开发,Java后端,计费项目 面试过程 :::warning 计费的项目介绍一下。实时计费。计费的主体是什么?支持多币种吗? 计费是累加的还是单条的?为啥不做成累加的? 如何避免重复计费?循环桶?雪花算法(时间+机器号+随机数)LEAF,时钟回调的问题如何解决的? 费用在数据库中什么类型存储的?bigint 单位为 分、代码中用的decimal,为什么要用decimal? 如何比较两个decimal是不是相等?0.1和0.10的equals相等吗? 为啥不用float或者double,精度问题? 计费的业务核心模型有哪些?计费单?有哪些核心的字段?计费类型、广告类型、金额、状态, 计费单的状态机的流转是怎么样的?反作弊、羊毛检测? Tidb,数据库的锁用过吗?并发控制没有做吗?什么场景用到了redis分布式锁。幂等是如何控制的? 分布式锁如何实现?zk为什么可以实现分布式锁? Redis和zk的分布式锁各自有什么优缺点?redis的分布式锁提前释放了怎么办?watch dog Lua脚本能保证原子性?为什么?什么叫原子性?Lua执行到一半某个命令失败怎么办? Redis的集群模型了解吗?有哪几种?主从、哨兵、cluster Redis的数据分片?redis支持哪些数据类型?redis的SDS如何实现的?如何避免缓冲区溢出? ZSET是如何实现的?跳表的查询、插入的时间复杂度是多少? 缓存穿透、雪崩、击穿问题。热key问题如何解决?二级缓存、拆分、预热。 如何实现一个”查找附近的人”的功能。GEO? 设计一个订单号的生产服务,会如何做?唯一性、自增、高可用, 唯一性如何保证?雪花。如何保证自增?如何保证高可用?主从、 什么样的架构算是好的架构?低耦合、功能性、 ::: 题目解析 :::color4 计费的项目介绍一下。实时计费。计费的主体是什么?支持多币种吗? 计费是累加的还是单条的?为啥不做成累加的? 如何避免重复计费?循环桶?雪花算法(时间+机器号+随机数)LEAF,时钟回调的问题如何解决的? ::: 计费业务以及业务中主要面对的问题 需要了解。 :::color4 费用在数据库中什么类型存储的?bigint 单位为 分、代码中用的decimal,为什么要用decimal? 如何比较两个decimal是不是相等?0.1和0.10的equals相等吗? 为啥不用float或者double,精度问题? ::: 不能用浮点数表示金额:https://www.yuque.com/hollis666/ec96i7/vmrkz84g8c6ypu5s bigdecimal比较:https://www.yuque.com/hollis666/ec96i7/qmx8yss8tve7w73q :::color4 计费的业务核心模型有哪些?计费单?有哪些核心的字段?计费类型、广告类型、金额、状态, 计费单的状态机的流转是怎么样的?反作弊、羊毛检测? ::: 核心的业务单据模型以及主要的状态机流转,通过这个考察一个候选人对于自己的项目的熟悉程度 https://www.yuque.com/hollis666/ec96i7/cg7ymuivx7lyubcb :::color4 Tidb,数据库的锁用过吗?并发控制没有做吗?什么场景用到了redis分布式锁。幂等是如何控制的? 分布式锁如何实现?zk为什么可以实现分布式锁? Redis和zk的分布式锁各自有什么优缺点?redis的分布式锁提前释放了怎么办?watch dog ::: redis分布式锁:https://www.yuque.com/hollis666/ec96i7/feovxr7gr8ois5yt :::color4 Lua脚本能保证原子性?为什么?什么叫原子性?Lua执行到一半某个命令失败怎么办? Redis的集群模型了解吗?有哪几种?主从、哨兵、cluster Redis的数据分片?redis支持哪些数据类型?redis的SDS如何实现的?如何避免缓冲区溢出? ZSET是如何实现的?跳表的查询、插入的时间复杂度是多少? 缓存穿透、雪崩、击穿问题。热key问题如何解决?二级缓存、拆分、预热。 ::: lua的原子性:https://www.yuque.com/hollis666/ec96i7/rwdgnu redis集群模式:https://www.yuque.com/hollis666/ec96i7/namhuv165lorwudw zset:https://www.yuque.com/hollis666/ec96i7/uzqztzuicddlk95c sds:https://www.yuque.com/hollis666/ec96i7/atppz6 穿透、雪崩、击穿:https://www.yuque.com/hollis666/ec96i7/abfis3 ...

March 22, 2026 · 1 min · santu

工作7年,SaaS公司,架构师,技术负责人

****面试者背景 人脸识别SaaS公司、7年工作经验,云平台核心业务开发,架构师,负责了项目0到1搭建 :::warning 支持1w并发是怎么做的?redis缓存、分库分表、future 如果让你支持10w并发,还能做哪些事情?消息队列解耦、打批处理、集群部署、 缓存用在什么场景?预热。用户的数据变了怎么感知? 一个租户特别大,热点问题怎么解决?缓存的热点问题怎么办?热key拆分、二级缓存。 近端缓存是什么?相比于本地缓存和分布式缓存有什么优缺点?一致性问题如何解决? 缓存和数据库的一致性该如何解决?更新数据库、删除缓存、延迟双删?为什么删除缓存而不是更新缓存?除了延迟双删,还有其他保证一致性方案吗?监听Bin log处理 如何实现一个本地缓存呢?map、guava,LRU是什么?LFU如何实现的?为啥要做缓存淘汰? Redis相比memcached优势? Redis的线程模型是怎样的?多路复用如何实现的?redis所有模块都是单线程的吗?为啥6.0要引入多线程?哪个模块是单线程的?多线程有什么缺点? 解决过OOM问题,介绍下过程。如何发现的?dump,如何解决的? 堆内存大小多大?8G,垃圾回收器用的是哪个?为什么不用CMS?CMS能降低STW? G1 有哪些特点?garbage first,REGION是什么?STW时长如何预测?小内存为啥不适合用G1呢? FullGC的触发条件是什么?老年代满了、空间分配担保失败、 什么是空间分配担保? Dubbo一次服务调用过程是怎样的? 如果让你实现一个dubbo,会考虑用那些技术解决哪些问题? Zk的选主过程是怎么样的?zk脑裂的问题? Zk可以用来做什么?用在哪些场景中?注册中心、分布式锁、分布式ID、master选举 Seata框架用了干什么?分布式事务有哪些方案?TCC详细介绍下。Commit的时候失败了怎么办? 架构设计的时候,首先考虑的三个要素是什么?可扩展性、高内聚低耦合、可用性 ::: 题目解析 :::color4 支持1w并发是怎么做的?redis缓存、分库分表、future 如果让你支持10w并发,还能做哪些事情?消息队列解耦、打批处理、集群部署、 ::: 因为简历中他提到负责的业务支持了1W的并发, 所以面试的时候会重点关注,如何抗高并发。 接口性能优化方案:https://www.yuque.com/hollis666/ec96i7/ifuuagaqo3yd8vqb 高并发思路:https://www.yuque.com/hollis666/ec96i7/gfgqpua8gu3oag44 :::color4 缓存用在什么场景?预热。用户的数据变了怎么感知? 一个租户特别大,热点问题怎么解决?缓存的热点问题怎么办?热key拆分、二级缓存。 近端缓存是什么?相比于本地缓存和分布式缓存有什么优缺点?一致性问题如何解决? 缓存和数据库的一致性该如何解决?更新数据库、删除缓存、延迟双删?为什么删除缓存而不是更新缓存?除了延迟双删,还有其他保证一致性方案吗?监听Bin log处理 如何实现一个本地缓存呢?map、guava,LRU是什么?LFU如何实现的?为啥要做缓存淘汰? ::: 热点问题:https://www.yuque.com/hollis666/ec96i7/lysd3t 缓存一致性问题:https://www.yuque.com/hollis666/ec96i7/tmcgo0 本地缓存:https://www.yuque.com/hollis666/ec96i7/iy5loh8gvzlqolxo LRU:https://www.yuque.com/hollis666/ec96i7/gl3fivks74z4d10e LRU实现:https://www.yuque.com/hollis666/ec96i7/qk8y0w5wa0vpcyzp :::color4 Redis相比memcached优势? Redis的线程模型是怎样的?多路复用如何实现的?redis所有模块都是单线程的吗?为啥6.0要引入多线程?哪个模块是单线程的?多线程有什么缺点? ::: Redis&Memcached:https://www.yuque.com/hollis666/ec96i7/ink6os3bm19gafx7 Redis线程模型:https://www.yuque.com/hollis666/ec96i7/lrhzxqbur0eywnfu Redis多线程:https://www.yuque.com/hollis666/ec96i7/zfpgxa93bmn9png9 :::color4 解决过OOM问题,介绍下过程。如何发现的?dump,如何解决的? ::: OOM问题排查:https://www.yuque.com/hollis666/ec96i7/vdnaxh :::color4 堆内存大小多大?8G,垃圾回收器用的是哪个?为什么不用CMS?CMS能降低STW? G1 有哪些特点?garbage first,REGION是什么?STW时长如何预测?小内存为啥不适合用G1呢? FullGC的触发条件是什么?老年代满了、空间分配担保失败、 什么是空间分配担保? ::: ...

March 22, 2026 · 1 min · santu

23年毕业,电商运营平台,mysql,mq,redis

面试者背景 23年毕业,项目是电商运营平台,主要技术mysql,mq,redis,负责过账单模块, 面试过程 :::warning 拉取订单数据,怎么保证订单不重复?insert or update ? insert or update的SQL怎么写的?insert into on duplicate key update 的限制是什么?有影响吗?会有额外的加锁吗? 每天的订单量有多少? 项目的难点是什么?订单匹配,正则匹配。正则表达式判断字符串是不是邮箱怎么写? MQ使用场景?异步导出,发MQ的应用和接MQ是同一个应用吗?不用MQ不行吗?线程池不行吗? Rabbitmq的整体架构介绍一下。Exchange起到的作用是什么?转发路由。 RabbitMQ消息的一次生成&消费的流程是怎么样的? 死信队列用过吗?死信队列的消息需要走exchange吗?死信队列可以做什么?延迟消息。 Rabbitmq和KAFKA区别?kafka一定不丢消息吗?rabbitmq能保证不丢吗? 线程池用过吗?线程池都有哪些类型?线程池的核心参数,拒绝策略有哪些,如何选择? 线程池核心和最大线程数如何设定的?向线程池提交一个任务的处理流程是怎么样的? Java中线程有几个状态?waiting和timed wating区别。什么时候会进入timed waiting 线程的start方法和run方法区别是什么? 如何在主线程中等子线程执行完?wait? Completablefuture什么地方用到了?性能提升的原因是什么?编排。 Completablefuture实现原理?ForkJoinPool是啥? AOP切面实现多数据源切换介绍一下? 金额的存储是怎么存的,decimal多少位?如何判断两个BigDecimal是否相等,为啥不用equals方法? Bigdecimal如何做四舍五入?bigdecimal传给前端出现科学计数法怎么回事?bigdecimal转字符串?toString?为啥不用double和float?为啥他们会丢失精度?用double存整数有问题吗? 为啥有了基本类型还需要包装类?double Double 缓存的穿透、击穿和雪崩?bloom过滤器。 分布式锁加锁失败后怎么做的等待? ::: 题目解析 :::color4 拉取订单数据,怎么保证订单不重复?insert or update ? insert or update的SQL怎么写的?insert into on duplicate key update 的限制是什么?有影响吗?会有额外的加锁吗? ::: 因为他的项目中提到了做了订单拉取,所以问了下如何防止重复,本质上还是一个幂等问题。 涉及到insert or update的操作,就深入问一下具体用法和实现 ✅如何解决接口幂等的问题? ✅SQL语句如何实现insertOrUpdate的功能? :::color4 项目的难点是什么?订单匹配,正则匹配。正则表达式判断字符串是不是邮箱怎么写? ::: 提到自己项目中写了很多正则表达式,那就随便问一个正则的问题。 邮箱正则验证:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+. [a-zA-Z]{2,}$ :::color4 MQ使用场景?异步导出,发MQ的应用和接MQ是同一个应用吗?不用MQ不行吗?线程池不行吗? ::: ...

March 22, 2026 · 1 min · santu

3年经验,智慧园区,mysql,Redis

面试者背景 :::warning 3年经验,2家公司(新能源,to B业务),智慧园区-智慧物业-能耗管理 能耗管理业务介绍一下,智能控制、能耗统计、性能优化、数据准确度提升、稳定性, 性能优化、数据准确度、稳定性,分别做了哪些事情?换成adb、业务宽表拆解, 数据库切换如何保证的稳定?代码中多数据源的管理是怎么做的? 为啥adb查询快知道么? 项目中有难度的地方有吗? Netty相比原生的IO模型有啥优势?封装NIO、粘包/拆包、IO多路复用、reactor模型 为啥Netty不基于AIO做呢。NIO用的是堆内内存还是堆外内存?directByteBuffer为啥用堆外内存?零拷贝,堆外内存溢出如何排查,dump对堆外内存有用吗?netty适合用在什么场景中?im、通信、 Innodb的索引介绍下?B+树。Innodb中的B+树长什么样?只有叶子节点之间有双向指针吗?叶子节点的没条记录之间是如何关联的? Innodb的索引结构和myisam有区别吗?myisam有聚簇索引吗? 创建索引的时候需要考虑哪些问题?使用频率、查询条件、前缀长度、 什么时候会考虑用联合索引?如果只有一个条件查就没有建联合索引的必要了么? 索引是越多越好么?a,b联合索引,在写SQL的时候where a = xx and b=xx 的顺序有关系吗? Mysql优化器都会做哪些方面的优化?索引选择。 如果优化器选错了索引怎么办?force index 有哪些情况会导致慢SQL?没走索引、索引失效、数据量大、多表join、 有没有可能走了索引还是很慢?如何确认一个SQL有没有走索引?type、extra, using index是什么意思?using where一定没走索引吗? Mysql的主从原理介绍一下。主从延迟如何排查? Mysql中用like能走索引吗?‘abc%’可以,‘%abc’这种有办法优化吗? Mysql了解过8.0吗?redis有一批key瞬时过期了,会导致什么问题?怎么解决呢? redis有一批key瞬时过期了,除了影响数据库,还有其他影响吗?读写会变慢吗?单线程。 Key过期会立即删除吗?redis的big key问题?很大是多大?会有什么问题?如何解决呢?怎么拆?按照日期 分库分表介绍下?单表数据量大导致查询慢,除了考虑分表之外,还有哪些方案?归档(冷热分离)、缓存、 数据量的话,你觉得做分库分表一定是一个好的方案吗? ::: 题目解析 :::color4 Netty相比原生的IO模型有啥优势?封装NIO、粘包/拆包、IO多路复用、reactor模型 为啥Netty不基于AIO做呢。NIO用的是堆内内存还是堆外内存?directByteBuffer为啥用堆外内存?零拷贝,堆外内存溢出如何排查,dump对堆外内存有用吗?netty适合用在什么场景中?im、通信、 ::: https://www.yuque.com/hollis666/ec96i7/itxx9r https://www.yuque.com/hollis666/ec96i7/roit5c9y04z6fqae :::color4 Innodb的索引介绍下?B+树。Innodb中的B+树长什么样?只有叶子节点之间有双向指针吗?叶子节点的没条记录之间是如何关联的? Innodb的索引结构和myisam有区别吗?myisam有聚簇索引吗? ::: https://www.yuque.com/hollis666/ec96i7/uh3cy1 https://www.yuque.com/hollis666/ec96i7/mcl4sn8mcutieesz :::color4 创建索引的时候需要考虑哪些问题?使用频率、查询条件、前缀长度、 什么时候会考虑用联合索引?如果只有一个条件查就没有建联合索引的必要了么? 索引是越多越好么? ::: https://www.yuque.com/hollis666/ec96i7/ygxb9f :::color4 a,b联合索引,在写SQL的时候where a = xx and b=xx 的顺序有关系吗? Mysql优化器都会做哪些方面的优化?索引选择。 如果优化器选错了索引怎么办?force index ::: ...

March 22, 2026 · 1 min · santu

字节支付1-2-3-hr面

一面 热点商家交易订单的写入如何处理? ✅MySQL热点数据更新会带来哪些问题? 分布式锁如何设计,锁超时,锁重入怎么设计 ✅如何用SETNX实现分布式锁? 缓存一致性如何保证 ✅什么情况下会出现数据库和缓存不一致的问题? leetcode 62, leetcode 122 二面 哪一块挑战比较大? 你觉得工作这么久最重要的技术相关的地方是啥,如何达成业务目标的 如何保证幂等,不用分布式锁如何保证 ✅如何解决接口幂等的问题? 和外部机构交互如何防止外部机构服务不可用拖垮调用服务 ✅和外部机构交互如何防止被外部服务不可用而拖垮 微信运动排行榜如何设计 写扩散,通过zset排序 leetcode,46题,全排列 三面 为什么出来看机会,目前在公司绩效怎么样? Mysql事务(ACID)的原理 ✅什么是数据库事务? 这几年有哪些成长? 如何降低软件复杂度?使用过哪些设计模式,举个例子? ✅你在工作中是如何使用设计模式的? 抖音春节红包雨从展示到发放到领取的全链路设计思路 leetCode,旋转矩阵 HR面 为什么出来看机会,目前在公司绩效怎么样? 希望涨薪多少? 觉得在工作中挑战最大的哪件事情,怎么解决的,收获是什么? 如果协作过程中遇见不配合的同事怎么办 觉得自己是更像哪种动物 说出自己的三个优缺点 入职之后更关注哪些事情(薪资、业务、同事等)

March 22, 2026 · 1 min · santu

平安一面

背景:不详 问题列表: RPC的详细流程(从应用启动到服务调用) ✅Dubbo实现服务调用的过程是什么样的? 2、怎么做负载均衡的(比如有s1,s2,s3 三个server端提供了同一个服务, 你client端什么时候建立连接?和全部建立连接吗?什么时候做负载均衡? ) 3、负载均衡策略都有哪些? ✅什么是负载均衡,有哪些常见算法? 4、加权轮询具体代码怎么写? 5、 加权轮询在应用节点上下线时有什么问题?有什么更好的处理方式? 6、 nacos 是怎么推送配置到本地的? 新增和修改有区别吗? ✅Nacos如何实现的配置变化客户端可以感知到? 8、redis 里面 lru,lfu 缺点是什么? 有什么解决的办法? ✅介绍下LFU、LRU等缓存失效算法?

March 22, 2026 · 1 min · santu

菜鸟1-3面

背景:3年 面试题: Object中equals和hashcode为什么需要重写 JVM垃圾回收的时机 ✅JVM 中一次完整的 GC 流程是怎样的? ✅YoungGC和FullGC的触发条件是什么? 两个动作,下订单和扣钱,怎么保证只能扣一次钱 ✅常见的分布式事务有哪些? CPU使用率高,如何排查? ✅CPU飙高问题排查过程(1) ✅CPU飙高问题排查过程(2) @Transactional注解怎么实现 缓存和数据库如何保持一致 ✅什么情况下会出现数据库和缓存不一致的问题? ✅如何解决Redis和数据库的一致性问题?

March 22, 2026 · 1 min · santu

顺丰一面

背景:应届生 1 什么情况下做sql优化,具体点 ✅如何进行SQL调优? ✅慢SQL的问题如何排查? 2 怎么去定位用户问题 3 用什么代理管理工具,git分支怎么管理 4 如何定位bug,用实际项目说明 5 平时怎么做单体测试 6 什么情况下用get 和 post 7 多线程,aqs讲一下 ✅如何理解AQS? 8 商城项目 9 redis 有哪些基础数据结构 ✅Redis 支持哪几种数据类型? 10 redis去缓存用户数据怎么操作,具体操作,怎么设置过期时间 11 设计模式 代理模式怎么用 ✅什么是代理模式,有哪些应用? 12 用过linux指令吗,查登录接口的日志怎么查

March 22, 2026 · 1 min · santu

百度二面

什么是Java内存模型 ✅什么是Java内存模型? 同步异步 ✅同步、异步、阻塞、非阻塞怎么理解? 并发并行 ✅能不能谈谈你对线程安全的理解? 了解哪些并发工具类 mybatis工作原理 说一下 mybatis 的一级缓存和二级缓存 ✅Mybatis的缓存机制 处理过内存溢出问题吗 ✅OOM问题排查过程 Java中的对象一定在堆上分配吗 ✅Java中的对象一定在堆上分配内存吗? 被标记为垃圾的对象一定会被回收吗 (应该是问多标漏标的问题吧?) ✅什么是三色标记算法? 为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗 ✅JVM为什么要把堆和栈区分出来呢? 算法题 买卖股票时机

March 22, 2026 · 1 min · santu

阿里一面

背景:工作5年 LinkedHashMap的应用 cloneable接口实现原理 异常分类以及处理机制 ✅Java中异常分哪两类,有什么区别? ✅以下关于异常处理的代码有哪些问题 wait和sleep的区别 ✅run/start、wait/sleep、notify/notifyAll区别? 数组在内存中如何分配 ✅数组和链表有何区别? AbstractQueuedSynchronizer ✅如何理解AQS? 如何检测死锁?怎么预防死锁? ✅什么是死锁,如何解决? Java 内存模型? ✅什么是Java内存模型? 如何保证多线程下 i++ 结果正确? ✅如何保证多线程下 i++ 结果正确? 分析线程池的实现原理和线程的调度过程? ✅什么是线程池,如何实现的? 线程池如何调优,最大数目如何确认? ✅线程数设定成多少更合适? ThreadLocal原理,用的时候需要注意什么? ✅什么是ThreadLocal,如何实现的? CountDownLatch 和 CyclicBarrier 的用法,以及相互之间的差别? ✅CountDownLatch、CyclicBarrier、Semaphore区别? LockSupport工具 Condition接口及其实现原理 ✅Java中的集合类有哪些?如何分类的? Fork/Join框架的理解 ✅ForkJoinPool和ExecutorService区别是什么? 分段锁的原理,锁力度减小的思考 BIO、NIO和AIO ✅什么是AIO、BIO和NIO? Netty 的各大组件 Netty的线程模型 ✅Netty的线程模型是怎么样的? TCP 粘包/拆包的原因及解决方法 ✅Netty如何解决TCP粘包、拆包的问题的? 了解哪几种序列化协议?包括使用场景和如何去选择 ✅Netty有哪些序列化协议? Redis的并发竞争问题如何解决 ✅Redis为什么被设计成是单线程的? 算法题 实现lru ✅实现一个LRU缓存淘汰策略,支持get和put操作

March 22, 2026 · 1 min · santu

留言给博主