大家好,欢迎来到IT知识分享网。
分享一篇朋友从深圳回到西安之后的面经总结。
下面是正文。
很多读者都知道我今年是准备回老家西安了,如果从我第一次踏上深圳这片土地算起,我已经深漂了整整 6 年了。今年留深过年期间,我们经过家庭会议的讨论,决定回家。
回老家西安的这个想法其实之前一直也有过,但是呢,在这里工作久了之后,做出这个决定还是挺需要勇气的。好吧,说白了就是这些年也有努力,但是还是买不起深圳的房子,也没有魄力贷款几百万,还款 30 年,那样自己的压力实在也太大了。我和我家小白还是喜欢安逸一些,我们认为人生嘛,挣钱也不是最重要的,每个月还款 2w 左右 ,还款 30 年,这个压力还是太大了。同时饮食习惯也不太一样,夏天太热,蟑螂太多等等都是说服我们离深回家的原因。不过,话说回来,也是因为我和小白都是西安人,对于回家选择哪个城市不存在争议,而且西安 IT 互联网环境这几年也不错,找工作没啥问题(深圳这几年也没白混,成长还是很大的 😄)。最近两周也在陆陆续续的面试找西安的工作,下面就给大家分享一些西安公司的面试题,有的我记录了,有的忘记了,希望对大家有帮助。
丰疆智能
西安研发中心,是深圳或者北京的面试官来面。
一面
主要问了项目和一些基础技术,项目细节问的非常细。
线上笔试
在线笔试,主要是考察设计和代码能力。
二面
面试体验很差,不停的 PUA,让给自己打分、笔试打分,反正就是咄咄逼人的感觉,语气也很不耐烦,互相不合适吧~
- 平时如何评估工作量的?
- 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 垃圾回收卡顿暂停了怎么处理?
还有一些问题,没听明白要问啥,就询问能具体解释一下?他直接说他知道了,下一个问题。。直接就想挂电话了~~
西安移动研究院
俩小时 三个人轮流问
一面
- 介绍项目&细节&自己负责了哪些编码工作;
- 包装类是深拷贝还是浅拷贝?
- Redis 的 key 删除策略?
- 写代码时常见的内存泄漏?
- MySQL 索引的结构和搜索数据的过程?
- 数据库的隔离级别?分别解决什么问题?
- 常用的 Spring Boot Starter 有哪些?
- Netty 为什么这么快?Epoll 的实现原理?
- 线程 A 中创建线程 B,线程 B 如何捕获线程 A 的异常?
- K8s 中 config 中环境变量修改,Docker 能否获取?配置文件修改 Docker 能否获取?
- 接口限流如何实现,Guava 和 Redis 如何在项目中结合使用的?
- HashMap 能否直接遍历删除?CurrentHashMap 能否遍历删除?
- 有哪些让线程阻塞的方法?有哪些类使用了 LockSupport?
- 泛型中 Extends 和 Super 关键字的区别?在 put 操作多时用哪种,为什么?在 get 操作多时用哪种,为什么?
- 频繁往外读取内容的,适合用上界 Extends,因为读取的元素都可以用上界定义的类型来接收,父类可以指向子类,如果用 Super,只能用 Object 类型类接收了,因为不确定是哪个父类;
- 经常往里插入的,适合用下界 Super。相当于放松了插入元素的类型,既然元素是 Fruit 的基类,那往里存粒度比 Fruit 小的都可以,如果是 extends,则插入时会报错,因为集合中不确定到底存的是哪个子类,会报错;
SpringBoot 自动装配原理?
项目中如何做统一异常处理?
Spring 中配置文件的加载顺序?
项目中如何做监控?JVM 进程如何监控?机器资源如何监控?
在册测评
完成了在线测评,提交了薪资流水。
过了一周多了,没有后续消息。
西安卓派
一面
耗时 1 小时
- Java 反射中 Super 和 Extend 有啥区别?
- 线程池的运行原理?线程池大小如何设置?项目中如何使用线程池?如何防止线程池滥用?线程池中阻塞队列的意义是啥?
- Spring 中的 ApplicationEvent 使用过?
- ThreadLocal 的数据结构?平时怎么使用?
- Spring 中的@Transactional 是如何使用 ThreadLocal?
- ThreadLocal 的 key 为什么要设置为弱引用而不用一般引用?是基于啥考虑的?
- 多线程中能否使用 ThreadLocal?如果要使用该怎么做?
- Spring 事务的隔离级别了解?你们怎么用?你怎么理解隔离级别?
- Spring 中的 AOP 切面,如果定义了多个增强执行顺序是怎么样的?
- DDD 了解?是否知道其中的术语?
- 设计模式了解哪些?如何使用的?具体的使用请求参数以及响应参数是怎么设计?
- 设计原则中的单一职责是啥意思?给一个场景问是否应该设计成单一职责?
- Tomcat 的线程池大小如何配置?
- HTTP 协议的无状态你怎么理解?无状态有啥好处和坏处?
- 介绍项目,特别仔细的聊项目细节;
- 如何实现一个分布式会议室预定系统?保证同一时间段会议室只能被预定成功一次?
- 是否愿意学英语?
二面
20 多分钟。
hr 面,聊聊做了什么项目,遇到了最复杂的问题是啥?如何解决的?介绍公司和项目,以及相关福利。
三面
2 个半小时
上机写代码,两道算法题,一道系统设计题。
面试过程中面试官非常耐心,写的不好的题会给你引导优化方向,整个过程非常愉快。
经验:上机考察代码能力,如果题目没看懂一定要积极主动询问,然后就是如果不会解题,可以和面试官交流自己的思路,避免低头不语,写了半天也没有答案;
四面
三面之后紧接着是老板面,西安这边的研发负责人。
主要是聊项目、对于项目设计的理解,什么是好的代码?什么是好的设计?
给出一些具体设计场景,让做选择,反正也没有唯一答案,说清楚自己的考虑点和原因即可,这种就是设计模式作为理论依据,然后结合平时自己的编码实践谈谈感受。
同时也聊到未来的一个发展方向,我正好最近对于后面走技术路线还是技术管理非常困惑,从聊的过程中这个问题也启发很大。
个人感受
卓派是一家外企,内部技术氛围很棒,从整个面试过程中都能感受到面试官非常有包容性,虽然我对于敏捷这块很多专业名词不太了解,也很细心的说了中文对应的翻译,面试的同时也涨了很多见识。
公司的业务发展目前只能算一般,毕竟西安团队只有 30 人,今年预计扩充到 50 人,卡车司机接单也是属于一个细分小众领域,所以公司业务发展这块存在一定的风险。
福利待遇也很不错,全额最高公积金,配置新款 mbp,人体工程学椅,每月团建,我觉得这种公司因为年终奖不高的缘故,肯定不会卷,不像大公司年底绩效决定了一年是否白干,也就不存在拼命卷的情况。
西安腾讯云
一面
耗时:50 分钟
- 自我介绍&介绍项目;
- 死磕项目实现过程和个人做了哪些事情,优化了什么,问的很细很细;
- 关于线程池的一个场景题;
- Future 实现阻塞等待获取结果的原理?
- 谈谈什么是零拷贝?
- 一共有几种 IO 模型?NIO 和多路复用的区别?
- JDK 中的 NIO 使用的是什么模型?
- 可重入锁和 Synchronized 的区别?Synchronized 的原理?可重入锁的实现原理?
- 乐观锁和悲观锁, 让你来写你怎么实现?
- ReentrantLock 的实现原理?Synchronized 是个悲观锁还是乐观锁?
- Paxos 算法了解?并发提案时如何处理?
- B+树聊一下?B+树是不是有序的,怎么样的顺序?
- TCP 怎么实现拥塞控制?怎么实现重传(说了思路不过具体的实现回答的不准确)?
- 看你有 JVM 调优经验,介绍下如何调优的;
- 算法题:给一个无序的数组,选一个随机数,实现左边比它大,左右比大小,要求保持原有相对顺序不变;给出的实现方法时间复杂度是多少?
二面
25 分钟
- 两个有序数组求交集;
- 项目介绍;
- Paxos 协议了解?工作流程是怎么样的?
- 时隔太久忘记了。。
三面
25 分钟
- 两个有序数组求交集;
- 二叉树如何持久化存储;
- 自我介绍;
- 前几次跳槽的原因?
- 介绍一个有技术挑战的项目?追问项目细节,问到有点招架不住了;
- 数据库分库分表的缺点是啥?
- 分布式事务如何解决?TCC 了解?
- 介绍下你们微服务项目的整体架构?服务间通信的原理?同步还是异步?
- RocketMQ 如何保证消息的准确性和安全性?
翼支付
一面
- 自我介绍&项目介绍;
- 介绍项目中如何使用微服务架构,个人主要负责了哪些模块,用到了哪些技术;
- HashMap 如何减少 hash 碰撞;
- 什么场景需要重写 HashCode 方法;
- 项目是否用到了线程池?怎么用的?常用参数有哪些?
- 当线程池核心大小满了,队列满了,在提交任务会创建线程还是排队?
- 谈谈对于数据库索引和约束的理解;
- 数据库的时间类型(DataTime&TimeStamp)?有啥区别?分别占用多大的存储空间?
- Kafka 如何实高可用、可扩展;
- 定时任务框架了解哪些(Elastic-Job、Xxl-Job、Quartz),实现原理是啥,优缺点对比;
- Apollo 实现热部署的原理;
- Redis 热 Key 如何解决?只回答了打散这一种方案
- Redis 的过期删除策略是什么?
- Spring 如何同时注入多态 Bean?提出了通过工厂获取多态实例的方案,面试官说可以集合注入;
二面
群面,一共 5 个候选者一起参加,每人一两个问题。
- 问项目,以及设计如何优化?
- 是否带过团队?如何帮助他们?
那面经就分享这些了,有一些公司的面经没有及时记录(京东、趣联网络科技、中兴、民生科技、BYD 等),也记不清了,反正每一家都大差不差,对于八股文的复习大家可以看开源的 JavaGuide,基本上都涉及了。
然后就是项目方面,大家一定要梳理明白你简历上的项目,因为稍微正规一点的大厂面试官,面试时注意力都是很集中的,而且思维也能跟上,你讲的项目时的每一句话他都会思考后给出问题,跟你深入讨论。
而且建议你的项目尽量复杂一些,有难度、有挑战一些,这样才有深入讨论交流的话题,不要太老实,就写自己平时增删改查之类的业务功能。就算项目不是你一个人做的,但是你了解同事是怎么做的,遇到了哪些问题,如何思考解决的,这样对你个人来说也是经验和成长。
那今天就分享这么多了,至于回西安后是啥情况,会不会后悔,还是等后面回去了再跟大家分享,起码目前是满怀期待,回去后有家人、有朋友,还是更熟悉一些,也打算工作之余的周末带着家人去周边逛一逛,然后可以时常吃到自己喜欢滴美食,确实很期待呢。我小时候还爱钓鱼,回去感觉也可以安排上了,哈哈 😄~
完
往期推荐
Lombok原理和同时使⽤@Data和@Builder 的坑
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看❤️
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/153510.html