java吧 关注:1,310,166贴子:12,888,658

回复:JAVA后端-5年-杭州 找工作记录贴哈

取消只看楼主收藏回复

7-13 15:00 第二家 线上面试 一面


IP属地:浙江27楼2026-07-13 09:56
回复
    10:00 中金电信 一面过 15K 还有二面 三面
    Q1:项目中的难点
    A1:平台QPS限制,限流算法的视线,令牌桶、滑动窗口、漏桶的选择,主要是根据项目抉择使用哪个算法
    Q2:大数据的查询如何优化
    A2:根据租户id分表,在表层面就加了一层过滤;统计数据,凌晨制作统计表,并且不允许页面查询条件使用当天,避免直接接触原始表;CDCmyslq 同步到 es,使用搜索引擎查询;这些都不考虑,就在sql层面进行索引优化
    Q3:如何看索引优化情况
    A3:Explain ANALYZE (业务非高峰期执行),可以看到sql具体的运行情况(rows、耗时、索引使用情况)等等,如果业务高峰期,直接通过explain 查看执行计划情况,观察possible keys以及使用到的索引,以及影响的行数、extra,观察是否使用filesort、外部临时表 using index等等,最主要的是观察索引使用的情况,比如index eq ref_eq range等等,根据情况调整索引
    Q4:如果想要在所有接口调用之前增加一个方法怎么操作
    A4:这个功能属于是Spring的AOP的,因为是针对的所有接口,可以通过@Apsect定义一个切面类,定义前置通知或者环绕通知,指定接口的包名,如果是指定接口的话,可以通过注解实现,@PointCut,指定annotation


    IP属地:浙江28楼2026-07-13 10:50
    收起回复
      2026-09-30 16:21:14
      广告
      不感兴趣
      开通SVIP免广告
      7-14 10:30 第四家 泰隆银行


      IP属地:浙江29楼2026-07-13 10:51
      回复
        今年面试,八股文基本为0,还要再背八股文吗,难道基础真的不重要吗


        IP属地:浙江30楼2026-07-13 11:04
        收起回复
          7-13 15:00 第二家 线上面试 一面
          自我介绍
          离职原因
          项目介绍
          Q1:多线程怎么创建,参数怎么设置
          A1:异步编排的一个线程池,CompletFuture;Executors;ThreadPoolExecutor
          他这里问的应该是具体参数如何设置,核心线程数设置成什么,阻塞队列设置成什么等等
          核心线程数,目前公司机器16c,CPU用的多话就16;IO多就32
          非核心线程,核心*2
          阻塞队列ArrayListBlockQueue,这个无所谓用哪个吧,生产基本都没出现过线程池刮的情况,除非是你代码写的太烂了
          拒绝策略:abort,因为不太可能出现满的情况,这个用的默认的
          后面就打断我了,进入Q2
          Q2:用的JDK什么版本,JDK21虚拟线程了解过吗?
          A2:JDK8/JDK17 springAI需要,了解过,类似于python的协程,传统一个请求对应一个OS线程,用的内核态,走的操作系统;虚拟线程是在JVM里面,类似于java对象,可以创建很多,并且内存占用小,传统需要涉及到上下文切换,寄存器的切换,比较重;并且虚拟线程碰到io会自动切换,也就是说我们可以用很少的虚拟线程处理大量的请求
          Q3:Redis的zset怎么实现的?
          A3:这里回答的说实话一般,数据过来忘记是怎么设置的,我记得是百分之25的记录晋升到下一层,然后构成一个多层级链表,比如最底层123456789,第二层13579,第三层1579,我们在查找的时候,依次从上向下查找,查6,就定位到57之间,依次向下查找
          Q4:Redis的list怎么实现的?
          A4:不清楚,ziplist压缩列表吧,这个没研究过
          Q5:Redis的字符串怎么实现的?
          A5:SDS,redisObject+数据存储空间,对象头包含,数据空间指针+空间大小+数据长度,数据长度<44字节,用的embstr,和对象头存一起,>=44字节,用的raw,另外开辟一个空间,并且后续如果修改数据长度embstr会直接转成raw,因为embstr存在缺陷,无法动态扩展长度,而raw可以动态扩展长度,后面没说完,被打断进入Q6
          Q6:MQ怎么实现延迟消息?
          A6:我只知道rabbitMq,TTL+死信队列,设置消息的过期时间,没有消费者,到期了,会自动被投递到死信的channel,由死信的消费者进行消费;或者通过rabbitMq的delayMessageExchange,指定header为x-delay-message(忘记是不是这个了),然后设置delay就能实现
          Q7:我想知道的是为什么mq能判断他已经到期了?
          A7:不明白到底啥意思,意思是我设置了5分钟的ttl,他怎么判断这5分钟 到期了?这个不知道,可能是算的吧,消息不能改ttl,因此在消息入库的那一刻就已经知道什么时候到期了,这个不是特别了解
          Q8:mysql有哪些索引数据结构?
          A8:这里面试官有点毒的,跟我扯半天,我说b树,叶子节点和非叶子节点都存数据,并且节点没有指针;然后演变成b+树,他说为什么要演变,我说b树查询速度不稳定啊,并且没有办法顺序遍历;他说哪不稳定了,和b+树不是一样吗,都是从树的头开始往下遍历,我说因为他都存节点,他的树一定比b+树高,b+树,只存索引和主键id,b树可能在中间就找到,也可能在最下层就找到,有的时候快有的时候慢,不稳定;b+树只会在叶子节点找到相对来说更加稳定
          Q9:dubbo+zk用过吗?
          A9:很早之前用过,现在都是用cloudalibaba那一套了,dubbo就是rpc调用的那一套吧;他说噢那你们注册中心用的nacos吧,我说是的
          Q10:AI编程用的多吗?怎么用的?
          A10:原先cursor+codex bash +claude code bash;cursor不太好用,java项目调试没发调试;后面idea插件有ccgui,用的idea+ccgui,一开始用的是opus4.5,然后用opus4.6,然后用glm5.1,然后用gpt5.5
          Q11:碰到问题怎么排查?
          A11:看碰到的是什么问题,正常范围内的报错,比如说用户参数填错了,外部接口报错了,这个不用排查,看一眼就知道了,并且有错误消息自动推送,可以及时反馈给客户;
          如果是服务器问题,比如说stackOverflow、outofmemory,我记得应该是top -H,转十六进制,然后jstack pid grep 找到对应线程,查看对应代码,或者是通过jmap dump下来,到jvisualvm里面,看堆情况以及调用栈;或者jstat看GC情况
          询问我有什么问题,结束


          IP属地:浙江32楼2026-07-13 16:20
          收起回复
            报告兄弟们,目前手里的面试


            IP属地:浙江33楼2026-07-13 16:25
            收起回复
              今天4个面试,有的吃不消了
              10:30 14:00 16:30 19:30


              IP属地:浙江34楼2026-07-14 09:39
              收起回复
                泰隆银行 一面 10:00
                有点水,怎么判断sql运行速度,怎么判断数据库需要分表
                他问了一句skills和agent你们怎么判断用的哪个,是想用哪个就用哪个吗?
                一下子给我整懵了,agent不就包含skills吗,这两个职责都不一样,skills是别人写好的比较优秀的提示词模板,我不太理解这个问题
                问了下加班情况
                他介绍了一下他们的项目,什么前后端不分离,jsp servlet都来了,自己封装的spring
                夸脏哦


                IP属地:浙江35楼2026-07-14 10:59
                收起回复
                  2026-09-30 16:15:14
                  广告
                  不感兴趣
                  开通SVIP免广告
                  14:00场 一面25分钟 二面 35分钟 ,hr+主管 17k
                  hr面略
                  主管面
                  自我介绍
                  项目介绍
                  Q1:AI智能体的落地
                  A1:这里举了项目中的AI AGENT,周报AGENT、客服RAG AGENT等等,以及CC-CONNECT做的错误日志发送给IM平台的AGENT
                  Q2:技术难点以及应对策略
                  A2:泛化的东西,比如刚接触到大模型有很多专业术语,以及不知道如何对接,通过和算法侧一点点对接掌握
                  比如说我跟产品说要分表,但是工作量比较大,老板不同意,后面写说明文档、流程图,通过沟通达成目的
                  Q3:技术广度与深度
                  A3:掌握主流AI框架与工具链,熟悉Conductor、dify、coze等等平台,以及二次封装dify+xxljob,增强dify定时任务能力(封成镜像)
                  大模型微调,使用Deepseek V3蒸馏模型在LoRA上微调,并在算力服务器AUTODL上部署
                  理解神经网络与深度学习的基础等等
                  这个公司主要做AIGC的,基本上过是没问题,部分内容我简化说明了,具体的实现这里不展示啦


                  IP属地:浙江39楼2026-07-14 19:11
                  收起回复
                    16:30场二面三面四面总共加起来2个小时18k
                    面了太多的东西,其中闲聊的也有一部分,挑几个重点说一下
                    Q1:接口响应慢怎么处理?
                    A1:优先排查下游依赖,比如说下游的MYsql查询性能问题,比如说下游的xx服务,针对性的优化;但是有一些下游服务就是会比较慢,这个时候可以改为异步处理,页面即时返回,通过回调通知结果;顺带引入熔断机制提升用户体验,防止雪崩
                    Q2:分库分表的实践
                    A2:没有用分表中间件,通过mybatis的插件实现的,实现inteceptor接口,在执行sql前进行拦截,分表为xxx_xxx_{ep_id}
                    Q3:单表的增量数据如何处理?
                    A3:单表会有循环机制,只保留一个月的,冷备份多余数据;面试官问,那删除后的磁盘碎片问题有关注吗,mysql没有清理碎片的机制,这个类似于JVM的垃圾回收算法,我没了解过mysql的整理碎片的机制,这个没回答出来
                    Q4:OOM故障定位?
                    A4:如果有Prometheus或者skywalking,通过链路追踪查看响应时间与调用栈
                    没有监控则是经典排查流程top -h 转十六进制,stack 查看具体栈情况,jstat看gc,jmap dump出来导到visualvm里面看,启动类里面加oom自动dump
                    Q5:容器频繁重启排查
                    A5:我说指定容器卷,dump下来的放在容器卷,宿主机可以直接排查;或者docker log查看,然后他说我问的是容器频繁重启的原因,我说堆溢出,栈溢出,宿主机资源不足,他追问还有啥原因吗,我绞尽脑汁回答不出来,他告诉我有健康检查,类似于nacos的心跳机制,这个倒是知识盲点,没有了解过
                    Q6:多线程使用需要注意什么
                    A6:这里你说的应该不是简单的那几个核心参数的设置把,这里给他举了个例子,就是下游服务抽帧满,导致多线程卡死,把阻塞队列堵死了,引入多线程里面应该增加超时机制,不能无限制的等待下游服务返回,不然线程全部堵住了,并且需要引入幂等,这个是mq的场景,不能重复消费
                    主管面基本上就是闲聊,问我未来规划,AI怎么提效的,提效到多少,ClaudeCode的subAgent自动化测试什么的等等内容


                    IP属地:浙江40楼2026-07-14 19:41
                    收起回复
                      19:30场 一面13分钟 速通
                      项目介绍
                      项目难点
                      Q1:认为什么是优秀的代码?
                      A1:扩展性强整洁的代码就是干净的代码,比如说工厂模式+策略模式,只不过我们用的是工厂模式的另一种实现,通过map注册顶级策略接口的实现类,把实现类都注册到map里面,这样就不用写if一条一条判断了,前端传一个枚举,直接从map里面拿,扩展的话,只需要实现对应的策略接口,map会自动注册;其他的比如说模板方法也用的比较多
                      Q2:策略模式和观察者模式的区别
                      A2:不知道,没用过观察者模式
                      Q3:责任链模式怎么用的,什么场景用?
                      A3:在流程的业务经常用,比如说请假、审批什么的,在mybatis中有应用,里面有三个handler,statementhandler,parameterhandler,resultSethandler,彼此串联;在mvc中也有应用filter用的也是责任链


                      IP属地:浙江41楼2026-07-14 19:46
                      收起回复
                        目前手里的,大部分外包公司后续面试都不面了
                        后面就按照正常投递,不再投小公司了


                        IP属地:浙江42楼2026-07-14 20:06
                        收起回复
                          早起先把第一轮最后一个面试面完,后面就不面了,转正常投递


                          IP属地:浙江来自Android客户端46楼2026-07-15 08:41
                          收起回复
                            中金电信二面过


                            IP属地:浙江49楼2026-07-15 10:39
                            收起回复
                              2026-09-30 16:09:14
                              广告
                              不感兴趣
                              开通SVIP免广告
                              第一轮面试全部结束
                              做个总结吧
                              第一轮主要是表达能力、以及市场行情面试题的考察,并不是真正意向公司
                              目前
                              20-99人 二面 等offer,大概率不去
                              1000-9999人 四面 等offer 大概率不去
                              中金电信 三面,后续暂时不面 可惜基本工资最多开到15k,公积金社保全额10%,很可惜,待遇不差
                              20-99人 二面 15k offer 已拒
                              泰隆银行 二面,等offer 不去,待遇比较差
                              0-20人 一面 不想再面了,就拒了
                              易宝软件 二面 不想在面了,就拒了
                              下午正式投递


                              IP属地:浙江50楼2026-07-15 10:59
                              回复