丰疆智能

西安研发中心,是深圳或者北京的面试官来面。

一面

主要问了项目和一些基础技术,项目细节问的非常细。

线上笔试

在线笔试,主要是考察设计和代码能力。

二面

  1. 平时如何评估工作量的?

  2. Java中的集合有哪些?ArrayList 的扩容机制?

  • 无参构建函数初始为空数组,添加第一个元素时,创建长度为 10;
  • 当插入元素不够用时,扩容 1.5 倍,如果还不够用就扩容为需要的大小。
  • HashMap 什么场景下是线程不安全的?会导致什么后果?

  • 线程池有哪些参数?并介绍参数在什么场景下使用?

  • 当核心线程数未满,继续提交任务,是复用已经空闲的线程还是继续创建?

  • Netty 中的核心组件有哪些?ByteBuf 有哪些方法?Netty 如何实现拆包?自定义拆包处理器是怎么实现的?

  • Spring 中有两个同样类型的 Bean,如何注入?如何实现全局统一注入?

  • AQS 了解?里面都有哪些属性?AQS 有几种模式?你对 AQS 还有哪些理解?

  • AQS 的公平锁和非公平锁原理是什么?读写锁的互斥规则?

  • Mybatis 如何实现结果绑定到 Java 对象的?

  • Spring 为什么要有三级缓存?

  • RocketMQ 怎么保证消息不丢,同步发送的 API 是啥?消费者如何保证消息不丢,除了 ACK 机制还有什么方法可以保证?

  • JVM 的内存模型?哪个区域不会发生 OOM?

  • JVM 都可以调优哪些参数,JDK8 默认的垃圾回收器是啥?都有哪些常见的垃圾回收算法?CMS 垃圾回收卡顿暂停了怎么处理?

还有一些问题,没听明白要问啥,就询问能具体解释一下?他直接说他知道了,下一个问题。。直接就想挂电话了~~

西安移动研究院

俩小时  三个人轮流问

一面

  1. 介绍项目&细节&自己负责了哪些编码工作;

  2. 包装类是深拷贝还是浅拷贝?

  3. Redis的key删除策略?

  4. 写代码时常见的内存泄漏?

  5. MySQL索引的结构和搜索数据的过程?

  6. 数据库的隔离级别?分别解决什么问题?

  7. 常用的 Spring Boot Starter有哪些?

  8. Netty为什么这么快?Epoll的实现原理?

  9. 线程A中创建线程B,线程B如何捕获线程A的异常?

  10. K8s中config中环境变量修改,Docker能否获取?配置文件修改Docker能否获取?

  11. 接口限流如何实现,Guava和Redis如何在项目中结合使用的?

  12. HashMap能否直接遍历删除?CurrentHashMap能否遍历删除?

  13. 有哪些让线程阻塞的方法?有哪些类使用了 LockSupport?

  14. 泛型中Extends和Super关键字的区别?在put操作多时用哪种,为什么?在get操作多时用哪种,为什么?

  • 频繁往外读取内容的,适合用上界Extends,因为读取的元素都可以用上界定义的类型来接收,父类可以指向子类,如果用Super,只能用Object类型类接收了,因为不确定是哪个父类;

  • 经常往里插入的,适合用下界Super。相当于放松了插入元素的类型,既然元素是Fruit的基类,那往里存粒度比Fruit小的都可以,如果是extends,则插入时会报错,因为集合中不确定到底存的是哪个子类,会报错;

  • SpringBoot自动装配原理?

  • 项目中如何做统一异常处理?

  • Spring中配置文件的加载顺序?

  • 项目中如何做监控?JVM进程如何监控?机器资源如何监控?

西安卓派

一面

耗时1小时

  1. Java反射中Super和Extend有啥区别?
  2. 线程池的运行原理?线程池大小如何设置?项目中如何使用线程池?如何防止线程池滥用?线程池中阻塞队列的意义是啥?
  3. Spring中的 ApplicationEvent 使用过?
  4. ThreadLocal的数据结构?平时怎么使用?
  5. Spring中的@Transactional是如何使用ThreadLocal?
  6. ThreadLocal的key为什么要设置为弱引用而不用一般引用?是基于啥考虑的?
  7. 多线程中能否使用ThreadLocal?如果要使用该怎么做?
  8. Spring事务的隔离级别了解?你们怎么用?你怎么理解隔离级别?
  9. Spring中的AOP切面,如果定义了多个增强执行顺序是怎么样的?
  10. DDD了解?是否知道其中的术语?
  11. 设计模式了解哪些?如何使用的?具体的使用请求参数以及响应参数是怎么设计?
  12. 设计原则中的单一职责是啥意思?给一个场景问是否应该设计成单一职责?
  13. Tomcat的线程池大小如何配置?
  14. HTTP协议的无状态你怎么理解?无状态有啥好处和坏处?
  15. 介绍项目,特别仔细的聊项目细节;
  16. 如何实现一个分布式会议室预定系统?保证同一时间段会议室只能被预定成功一次?
  17. 是否愿意学英语?

二面

20多分钟。

hr 面,聊聊做了什么项目,遇到了最复杂的问题是啥?如何解决的?介绍公司和项目,以及相关福利。

三面

2个半小时

上机写代码,两道算法题,一道系统设计题。

面试过程中面试官非常耐心,写的不好的题会给你引导优化方向,整个过程非常愉快。

经验:上机考察代码能力,如果题目没看懂一定要积极主动询问,然后就是如果不会解题,可以和面试官交流自己的思路,避免低头不语,写了半天也没有答案;

四面

三面之后紧接着是老板面,西安这边的研发负责人。

主要是聊项目、对于项目设计的理解,什么是好的代码?什么是好的设计?

给出一些具体设计场景,让做选择,反正也没有唯一答案,说清楚自己的考虑点和原因即可,这种就是设计模式作为理论依据,然后结合平时自己的编码实践谈谈感受。

同时也聊到未来的一个发展方向,我正好最近对于后面走技术路线还是技术管理非常困惑,从聊的过程中这个问题也启发很大。

个人感受

卓派是一家外企,内部技术氛围很棒,从整个面试过程中都能感受到面试官非常有包容性,虽然我对于敏捷这块很多专业名词不太了解,也很细心的说了中文对应的翻译,面试的同时也涨了很多见识。

公司的业务发展目前只能算一般,毕竟西安团队只有 30 人,今年预计扩充到 50 人,卡车司机接单也是属于一个细分小众领域,所以公司业务发展这块存在一定的风险。

福利待遇也很不错,全额最高公积金,配置新款mbp,人体工程学椅,每月团建,我觉得这种公司因为年终奖不高的缘故,肯定不会卷,不像大公司年底绩效决定了一年是否白干,也就不存在拼命卷的情况。

西安腾讯云

一面

耗时:50 分钟

  1. 自我介绍&介绍项目;
  2. 死磕项目实现过程和个人做了哪些事情,优化了什么,问的很细很细;
  3. 关于线程池的一个场景题;
  4. Future 实现阻塞等待获取结果的原理?
  5. 谈谈什么是零拷贝?
  6. 一共有几种 IO 模型?NIO 和多路复用的区别?
  7. JDK 中的 NIO 使用的是什么模型?
  8. 可重入锁和 Synchronized 的区别?Synchronized 的原理?可重入锁的实现原理?
  9. 乐观锁和悲观锁, 让你来写你怎么实现?
  10. ReentrantLock的实现原理?Synchronized 是个悲观锁还是乐观锁?
  11. Paxos 算法了解?并发提案时如何处理?
  12. B+树聊一下?B+树是不是有序的,怎么样的顺序?
  13. TCP 怎么实现拥塞控制?怎么实现重传(说了思路不过具体的实现回答的不准确)?
  14. 看你有 JVM 调优经验,介绍下如何调优的;
  15. 算法题:给一个无序的数组,选一个随机数,实现左边比它大,左右比大小,要求保持原有相对顺序不变;给出的实现方法时间复杂度是多少?

二面

25分钟

  1. 两个有序数组求交集;

  2. 项目介绍;

  3. Paxos 协议了解?工作流程是怎么样的?

  4. 时隔太久忘记了。。

三面

25分钟

  1. 两个有序数组求交集;
  2. 二叉树如何持久化存储;
  3. 自我介绍;
  4. 前几次跳槽的原因?
  5. 介绍一个有技术挑战的项目?追问项目细节,问到有点招架不住了;
  6. 数据库分库分表的缺点是啥?
  7. 分布式事务如何解决?TCC 了解?
  8. 介绍下你们微服务项目的整体架构?服务间通信的原理?同步还是异步?
  9. RocketMQ 如何保证消息的准确性和安全性?

翼支付

一面

  1. 自我介绍&项目介绍;
  2. 介绍项目中如何使用微服务架构,个人主要负责了哪些模块,用到了哪些技术;
  3. HashMap 如何减少 hash 碰撞;
  4. 什么场景需要重写 HashCode 方法;
  5. 项目是否用到了线程池?怎么用的?常用参数有哪些?
  6. 当线程池核心大小满了,队列满了,在提交任务会创建线程还是排队?
  7. 谈谈对于数据库索引和约束的理解;
  8. 数据库的时间类型(DataTime&TimeStamp)?有啥区别?分别占用多大的存储空间?
  9. Kafka 如何实高可用、可扩展;
  10. 定时任务框架了解哪些(Elastic-Job、Xxl-Job、Quartz),实现原理是啥,优缺点对比;
  11. Apollo 实现热部署的原理;
  12. Redis 热 Key 如何解决?只回答了打散这一种方案
  13. Redis 的过期删除策略是什么?
  14. Spring 如何同时注入多态 Bean?提出了通过工厂获取多态实例的方案,面试官说可以集合注入;

二面

群面,一共 5 个候选者一起参加,每人一两个问题。

  1. 问项目,以及设计如何优化?
  2. 是否带过团队?如何帮助他们?

那面经就分享这些了,有一些公司的面经没有及时记录(京东、趣联网络科技、中兴、民生科技、BYD 等),也记不清了,反正每一家都大差不差,对于八股文的复习大家可以看开源的 JavaGuide,基本上都涉及了。

然后就是项目方面,大家一定要梳理明白你简历上的项目,因为稍微正规一点的大厂面试官,面试时注意力都是很集中的,而且思维也能跟上,你讲的项目时的每一句话他都会思考后给出问题,跟你深入讨论。

而且建议你的项目尽量复杂一些,有难度、有挑战一些,这样才有深入讨论交流的话题,不要太老实,就写自己平时增删改查之类的业务功能。就算项目不是你一个人做的,但是你了解同事是怎么做的,遇到了哪些问题,如何思考解决的,这样对你个人来说也是经验和成长。


0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

蜀ICP备16001794号
© 2014 - 2024 linpxing.cn All right reserved.