8年经验被迫毕业,前后面试30家公司,如今终于上岸

文章分享了一位程序员在不同公司面试的经历,包括面试中遇到的技术问题、面试官的关注点以及作者的反思。涵盖了Java、JVM优化、分布式系统、数据库优化、面试技巧等多个方面,揭示了当前求职市场的竞争状况和技术要求。
摘要由CSDN通过智能技术生成

大家好,我是君哥。今天分享一个老弟,被“毕业”后的求职经历。

在老东家干了 6 年,发展一般,很想出去,但是一直没有合适的机会,只好一边准备面试一边学习。让我没有想到的是,突然收到了“毕业”通知,当然,不光是我,而是整个团队。

毕业,对于我这样的老员工来说是不错的结果,因为正好我也想出去,而且这次公司还能给不少补贴。

回家住了一段时间后,我开始了疯狂面试,今年的求职环境真的让人头疼,不要说张薪了,平薪都很难。下面介绍我面试过的公司。

首先介绍下个人情况,双非本科,写码 8 年,其中 6 年在金融行业,算是有行业积累,但是核心业务并没有接触到。在金融行业工作,技术的提升是比较小的,好多流行的技术栈没有用过。

1 链宇科技(新能源,笔试)

上来就是一套笔试卷,下面是其中两套笔试题:

​面试心得:

  • 创业小公司,一上来就笔试题,而且用浏览器笔试回答过程还有视频监控,侵犯隐私,感觉有点恶心;

  • 果断遮住,这公司面过了也不想去;

  • 但太久没刷题,只做下题找下状态。

2 北大医信(医疗行业 erp)

  • SpringBoot 怎么启动的;

  • RabbitMQ 发消息哪几种方式;

  • 会哪些设计模式,策略模式在项目中怎么用的;

  • 线程怎么创建的,有哪几种方式;

  • 有哪几种线程池实现方式;

  • 哪些场景用消息队列;

  • JVM 参数怎么调优;

  • 反射怎么用。

面试心得:

一面20分钟结束,挂!基本都能答上一点点,但是思路不清晰,语言组织吞吞吐吐,技术理解不透彻,太久没面试,紧张。

3 长亮科技(外包)

  • 自我介绍,项目经历;

  • 项目流程是怎样的,你做过的项目,讲讲哪块是你做的?

  • Synchronized 是怎样实现的,偏向锁标志存哪里,为什么升级到重量锁慢,偏向锁有个开关,如果默认开启有什么缺点?

  • Synchronized 为什么慢,cas是不是操作系统执行的,他比 Synchronized 快还是慢为什么?

  • CAS 平时怎么用的,会有什么问题,为什么快,如果我用 for 循环代替 cas 执行效率是一样的吗?

  • volatile 哪些场景会用到,原理是什么,除了在单例模式中用到,还有什么地方?

  • 还用过哪些分布式组件,Redis 集群怎么搭建的,有哪些配置,哈希槽概念,hash 是怎么分布的?

  • Redis 一个请求过去,是在客户端还是在服务端,通过 key 找到对应的数据?

  • 如果 Redis 集群特别慢,有什么排查方法?

  • 还有其他哪些分布式组件,你最熟悉哪一块?

  • AtomicInteger 自增到一万以后,怎么归零;

  • 源码看过哪些,讲讲。

面试心得:一面20分钟挂,好几个没答上来!

4 中诺数科(供应链金融):

  • 自我介绍;

  • 你工作这么多年了,哪些技术栈比较擅长,你觉得你做得好的项目有哪些,或者说业务复杂的地方在哪里,怎么解决的?

  • 说一下贷前,贷中,贷后的流程,你负责哪些模块,讲讲实现流程,有没有技术难点,业务解决难点?

  • 说一下CAS怎么用的,会有哪些问题,Synchronized呢;

  • 说一下你对Spring的理解;

  • 我们知道Redis很快,访问是在内存中的,除了这个原因,还有没有其他原因?

  • 你是怎么理解分布式架构的,怎么做的微服务?

  • 有没有参与过开源项目的贡献?

  • 你是怎么学习一门新技术的,方法是什么?

  • Java有哪几种基本数据类型?float和double的区别是?

  • String和StringBuffer、StringBuilder的区别是?

  • List和Set的区别是?

  • HashMap的底层结构是?

  • MyBatis一级缓存和二级缓存的区别是?

  • 说一下你对设计模式的理解,怎么根据项目的业务去选哪些设计模式,根据什么情况去做的设计模式?

  • SpringCloud你用过哪些,怎么用的,为什么选择SpringCloud组件?

  • 你用过Gateway,那么Gateway怎么做的动态路由?

  • 说一下NIO,为什么快,比传统阻塞io?

  • MySQL索引建立的时候需要注意哪些?

  • MySQL查询需要注意哪些事项?

  • MySQL一句sql执行语句,从执行到返回结果,mysql做了哪些事情?

  • MySQL字段char 和 varchar的区别是啥,varchar(30)代表什么意思?

  • MySQL 查询平时怎么优化的?

  • 消息中间件用的什么?RabbitMQ?有哪几种发送消息的模式?

  • 如果访问一个页面报错,那么怎么开始排查最终定位问题?

  • Spring的循环依赖怎么实现的?

5 小数点科技(房抵渠道)

  • 你对代码或者系统,做过哪些优化?

  • 系统慢,比如cpu高或者内存高,是怎去排查的问题?

  • Redis有哪几种数据类型,这几种数据类型应用场景分别是怎样的?

  • Redis怎么保证事务?

  • Spring事务的传播机制,是怎样的?

  • 如果有一个select方法,有Spring事务注解,这里面调用了一个update数据库的方法, update是另外一个方法,update有没有事务?

  • 乐观锁和悲观锁,你在项目中的使用场景是什么?

  • 说一下你对乐观锁的理解?

  • 你的消息中间件,怎么保证顺序性?

面试心得:15分钟结束。等通知(没戏)

6 北京鑫物(小说app)

  • 自我介绍一下;

  • mysql是做的集群吗,主从是怎么做的配置?从服务器几个线程去同步主库的?

  • 联合索引a b c怎么生效,ac 或者 ab 生效吗?

  • 你们jvm启动参数怎么设置的,大小怎么配置?

  • 怎样让AB两个线程交替执行,他俩执行完再让C线程在这俩之后执行?

  • SpringCloud 服务注册与发现,底层是怎么实现的,用netty?

  • 怎么定位服务器的问题,如果内存过大,怎么排查定位解决?

  • 你们是用的自己的服务器,还是买的云服务?项目是怎么打包发布的?

  • 发布到 linux 服务器上,有写过启动应用的脚本吗?

面试心得:20分钟完,问了现在薪资和期望,然后说等通知! 二面被我拒绝了,感觉距离太远,而且行业方向不对口

7 恒昌利通(小贷公司)

  • 自我介绍;

  • 公司业务模式介绍,做什么业务的,你做哪块的;

  • 多线程的几种实现方式,线程数池的好处,线程池有哪些参数,你们用哪种策略,生产中也用拒绝策略吗?

  • 什么是cas,cas会有什么问题,Java哪些类用了cas?基本包装类型有用到cas吗?

  • 对观察者模式了解吗,项目中怎么用到的?

  • gc有哪些算法,垃圾收集器,cms有什么优点?

  • 说一下cap理论,Zookeeper是满足cap哪几个点,eureka呢,nacos呢?

  • mysql索引失效场景?

  • 内存溢出有哪些情况?堆内存溢出有哪些情况?

  • mybatis 预编译怎么实现的?

  • mybatis 怎么防止sql注入?

  • Redis 数据类型?

  • Redis rdb和aof的区别?

  • Redis 缓存穿透 击穿 雪崩?

  • Redis 分布式锁有哪几个参数?

  • Redis 分布式锁怎么进行锁续期?

  • Redis 实现分布式锁 和 Zookeeper实现分布式锁有什么区别?

  • Zookeeper 抢占分布式锁,如果5个线程去创建节点,如果第三个线程挂了,影响后面的线程吗?

  • Java 守护线程的作用?

  • spi 机制了解吗?

面试心得:聊了一个小时左右,答的也不是很好。然后过了初试,约了复试时间;公司地址: 北京市朝阳区华腾世纪总部公园E2座3A层(地铁四惠东站B口出,导航至华腾世纪总部公园南2门)

8 致远互联(协同管理软件)

  • 自我介绍;

  • cas自增 和 Synchronized 自增 谁快 ?

  • synchronized 和 ReentracLock 哪个快,为啥?

  • Spring 和 SpringBoot 的区别,是什么?

  • SpringBoot 用的是什么概念去实现的,他是用的什么思想去做的?

  • 如果让你实现一个SpringBoot starter,你应该怎么做?

  • SpringCloud 用过哪些组件 ?

  • rabbitMQ 实现机制,了解吗,为什么这么快?

  • mysql innodb 索引失效场景

  • 你项目里面的东西,哪些可以值得拿出来说一下?

  • NIO了解吗?

  • Jdk1.8默认JVM的参数

面试心得:让我等了20分钟才进来,面试问一堆我不会的东西,面试也就问了20分钟,没戏等通知。

9 拉勾网(招聘网站)

  • 自我介绍;

  • 用过哪些集合,怎么理解;

  • Hashmap的底层实现,是线程完全吗,为什么?

  • ConcurrentHashMap怎么实现的?

  • 对Volatile和Cas怎么理解,Synchronized呢?

  • MySQL的三种日志分别是什么,undolog怎么实现事务的?

  • MySQL innodb的数据结构,B+tree和B-tree的区别在哪里,数据是怎么存储的,数据页的概念是什么 ,页是连续的吗?B+tree的非叶子结点存的什么?

面试心得:20分钟完成,答的不好,说等通知没戏!

10 视联动力(视频通信软件)

  • 你做了这么多年开发了,项目里面有什么值得拿出来说一下的?比如复杂的业务或者复杂的技术问题?

  • 分布式事务,什么场景用,为什么用,你用的hmily,那么用过seata吗,seata支持tcc模式吗,分布式事务会出现一些什么问题?

  • 讲一下单例模式,为什么用double check的方式,为什么会用volitale;

  • 看你简历写的,排查过线上问题排查,你是怎么排查定位的?

  • 看你简历写的,修复过宕机问题,是怎么定位修复的?

  • 除了单例模式,其他设计模式,你结合你的项目,怎么用的,为什么会考虑用到设计模式,带来什么好处,能讲讲吗?

  • 分布式锁怎么用的,Redis用分布式锁会有什么问题?

  • 你用分布式锁,都在哪些场景下用到的?

  • 说下你对cas的理解,可能会有什么问题,除了AtomicReference还有什么方案能解决ABA问题?

  • Redis常用的数据类型,在哪些场景下用到Redis,有复杂一点的场景吗?

  • Redis怎么实现发布订阅的功能?

  • MySQL,有一个长事务挂起很久了,怎么去查看杀掉?

  • MySQL表的数据量达到一定规模,比如几百万条,如果insert比较慢,该怎么排查解决?是数据量的问题,还是其他问题?

  • SpringCloud nacos注册以后, 是通过怎么去调用服务的?

  • 怎么去解决接口的幂等性问题,如果数据库里面没有唯一主键?

  • 分布式锁实现业务幂等?

面试心得:

  • 一个小时结束,聊了很多,对方语音听不太清,面试效率不是很高;

  • 今天面试被PUA,说我能力不行;

  • 工作这么多年了,很多深层次的东西不了解,给我提建议,让多总结多学习,给我说大数据量情况下,sql 优化、设计模式、分布式组件、大有可为,呵呵哒!

11 壹码科技(食品检测设备)

  • 自我介绍,哪个学校,哪年毕业的,是不是统招本科?

  • 为什么来北京,接下来怎么考虑职业规范、发展;

  • 接下来怎么考虑职业发展,行业方向,主要做什么考虑;

  • 在之前工作中,有没有感觉相处不愉快的事情,感觉公司有什么不合理的制度吗?

  • HR开始介绍自己的公司规模;

  • 数字化工厂事业部,纯软件方向;

  • 主要是做企业管理系统,二次定制开发;

  • 问了薪资多少,是否能够提供流水,期望薪资多少;

  • 社保公积金缴纳比例多少;

  • 后续有需要,技术部门再找你沟通;

面试心得:浪费时间,估计就是hr忽悠我,不想面试了。

12 某基金公司

  • 聊天式面试主要问我们公司是做什么业务的;

  • 自我介绍,挑一个你认为你很成功的项目来说一下;

  • 说一下你常用熟悉的集合,讲一下区别,hashMap不同的版本有什么区别;

  • Redis常用的数据结构有哪些,怎么用的?

  • 看过mybatis源码吗,最近有在学什么新技术吗?

  • mysql数据量表大了,上千万了,怎么优化;

  • 怎么优化查询sql语句;

  • Redis 如果是集群,有没有缓存丢失的情况,脑裂是什么;

  • Redis缓存击穿怎么避免,你是用布隆过滤器怎么解决的?

  • 选择设计模式,是怎么考虑的?实际项目中怎么用到的?

面试心得:50分钟左右,面试的整个过程,不是很难,一面应该通过了,面试官问了期望薪资,我说期望年xxx,面试官说现在行情不好给不到这么多,问多久能到岗,同时约了下周三复试时间

13 新东方前途(出国咨询)

  • 自我介绍、系统业务逻辑介绍

  • 为什么3月份到现在,还没上班?

  • 然后介绍他们现在想做什么系统?

面试心得:这边他们只想做一个手机号匹配的,类似用户中心管理系统页面的功能,工资低,18~22k。系统也很简单,这次线上面试我的还是个用户中心的系统用户,都不是技术,还想约线下面试,浪费时间,已拒绝。

14 中关村科金(数字科技)

  • 自我介绍,挑一个你最熟悉的项目说吧,然后用了哪些技术栈,你对哪块技术熟悉?

  • HashMap 初始容量大小是 16, 扩容加载因子 0.75。 如果容量到 12,肯定会扩容吗?

  • 线程池拒绝以后,如果这个任务很重要,该用什么策略,接下来该怎么办,直接丢弃吗?

  • 微服务你们怎么用的,用到哪些组件?

  • jvm参数怎么设置,怎么排查jvm的问题?

  • 如果系统访问变慢,你怎么排查问题,链路追踪用过吗?

  • mysql 两个字段,id name socore ,怎么取score 前3的?如果第三个socre有重复的,怎么取score排名前3所有人的名字?

  • Redis怎么实现轮训,你用哪些数据结构可以实现,或者其他的你用什么算法实现?

  • mysql查询怎么优化?

  • nacos服务调用,怎么实现cp和ap,ap是默认的,那么cp模式呢?

  • nacos怎么实现的动态配置,底层原理怎么实现的?

  • gateway网关,你们后面配置的转发,分内部和外部系统吗?

  • feign用过吗?

  • k8s 容器 了解过吗?

  • nacos配置文件的格式有哪几种知道吗?.yml 或者 .properties

  • nacos动态服务注册怎么实现的;

  • rabbit mq 怎么保证不丢失?

  • rabbit mq 多个消费者A、多个生产者A;如果我A发送消息给消费者,需要告诉B停止处理消息,该怎么做?

  • mysql 行锁和间隙锁了解吗?

  • 线上如果内存过大或者cpu占用多,你该怎么排查?

面试心得:很多细节不会,有点懵的感觉。面试了一个多小时,一边面试我一边告诉我答案,他们技术用的比较新,jdk 17 + SpringCloudalibaba,等通知!然后过了一会hr居然还约了时间二面;

15 卓望(移动子公司)

  • 你对g1收集器了解吗,他的好处知道吗?

回答:用分区弱化了分代的概念,强调garbage first,需要回收时才回收的优先原则,通过卡表维护记录回收了哪些内存块区域,可以通过 MaxGCPauseTime控制最大回收时间,提高系统响应时间,系统吞吐量;

  • 又问,那他的MaxGCPauseMillis是怎么控制实现了解吗?

没答上;

  • 你们用的什么jdk版本,你用的收集器是什么?这收集器会有哪些缺点,实际场景中都遇到什么样的gc问题,你们jvm参数是怎么配置的?

答:用的jdk1.8版本,收集器是CMS+parNew ,讲了一些堆栈参数配置,比如系统内存是6G,--Xmn 4g ,-Xmx 4g ,-Xss 512k 的设置, -Xmn 和-Xmx最好设置成一样大,避免内存动态扩展震荡,导致多发生一些不必要gc问题,用cms,会有内存碎片化问题,可以通过两个参数开启内存碎片化整理,多少次fullgc后整理一次碎片,gc中的Promotion Failed问题,Concurrent Mode Failure 问题会导致最后用Serial Old单线程回收;

还讲了代码编写不规范,比如查询整个表里面数据不分页直接放到List集合中,如果条数过多会导致内存溢出,FileInputStream 操作文件流使用后没有在 finally 中释放资源,导致内存泄露;update sql 语句,使用索引不规范导致锁表,其他update sql同样表的线程等待释放锁,整个请求链路都变慢,内存无法释放,导致内存溢出的问题;

  • 追问:你们系统内存是6g,当时设置堆内存大小,比例是怎么考虑的?

没答上;

  • 追问:如果你应用内存过大,或者cpu占用过多,你们是怎么排查的?

答:用top命令,shift +p/m,可以切换查看使用最大cpu或者内存的进程pid

  • juc包concurrenthashmap里面用过吗,1.8是怎么实现的,

回答:1.8升级了,锁的粒度更细,使用synchronized+cas,synchronized锁住哈希冲突的数组中头结点;

又问 cas 是用在哪里?你认为 Synchronized 锁住哈希冲突的头结点以后,就不需要 cas 操作了吗?

cas 是用在哪里没答上,然后我说synchronized锁住哈希冲突的头结点以后,应该不需要cas操作了,因为此时单线程操作安全了;

  • 线程池中execute 和 submit方法有什么区别?

回答:一个是提交Runnable参数,一个是提交Callable对象参数,其中Callable有返回值;在execute方法中提交Runnable任务时,后台有RunnableAdapter,其实是把Runnable转换成Callable执行,这里用到了适配器模式,只不过execute方法的返回值为空;还有通过submit提交的方法,后续用Future.get阻塞获取执行结果,并且异常需要提交任务的线程自己处理;

又追问:submit方法提交的任务,如果发生异常需要调用者自己处理,这块后台是怎么实现的?

没答上!

  • Redis分布式锁,你们怎么用的,有哪几个参数需要设置?

回答:五个参数,key锁名称,requestID客户端id,NX(SET_IF_NOT_EXIST),PX(SET_WITH_EXPIRE_TIME),expireTime(超时时间),因为哪个客户端请求的就哪个释放,避免死锁,所以有这几个参数;

  • 又问:你们生产用的什么样的分布式锁?

答:用的Redisson,因为用jedis实现分布式锁,很难解决锁续期的问题,在超时时间内如果A客户端没有执行完任务,锁被超时释放了, 次数B客户端就获取了锁,那么就会出现问题;

又问:如果你们用Redisson,在Master宕机以后,slave没有同步到分布式锁,这个问题用什么方案怎么解决?

没答上!

  • MySQL 字段 char 和 varchar 有什么区别?

回答:char 不可变,当字段长度确定固定后,用 char;varchar 可变的,字段长度不确定用varchar,会多一个字节存储长度

又追问:除了这个,还有其他区别吗?

没答上,此时我反问他:那请问你知道还有什么区别吗?

他回答:当你使用varchar时,如果用了modify column去把列修改成char,会产生内存碎片空间

  • 你们mysql用了集群吗?

回答:没有,我们用的主从同步,master/slave,主库开启binlog,采用row行同步方式,主库一个线程去写入binlog里;从库一个线程从主库的binlog同步到本地的中继日志,然后再用一个线程从中继日志同步据到本地数据库数;

(因为之前其他公司被问到过主从同步用了几个线程,当时回答只有一个线程,答错,后来百度搜了下明白了;也不敢说用过mysql集群,因为按照他的提问方式,如果说用了,感觉他会继续问涉及到备份、读写分离、数据一致性问题,怕回答不好露馅)

  • 你刚才说到了 binlog,那么 redolog 了解过吗?

答:redolog 好像是用做数据恢复的(答错),面试官纠正,是用来做事务持久化用的;又问:那么为了保持事务和数据一致性,redolog 和 binlog 他俩是怎么做到同步的?没答上,这问题一点不会;

  • 你们消息队列用的什么,Kafka 和 RocketMQ 用过吗。你用的RabbitMQ是吧,那讲讲怎么保持消息顺序性!

回答:RabbitMQ,生产者是通过交换机塞入quene中,你可以用direct exchange模式,指定routingkey绑定quene, 生产者往队列里面塞,消费者用单线程消费,消费完一个,给生产者ack确认机制以后,再继续消费下一条;又追问,如果消费者端用多线程消费,就没办法保证顺序性了吗?没答上!

  • RabbitMQ 怎么保证不重复消费?

回答:因为有时候由于网络故障,导致了消息重发的问题,队列中可能产生重复的消息;如果消息队列是一个类似 insert 数据库语句的操作,那么可以通过数据库唯一键来保持插入不可重复;如果不是 insert 语句操作,可以通过借助 Redis,消费者端接受到消息的时候,先往 Redis里面 set key,后续每次消费的时候,都先从 Redis key里面 get 一下,如果有这个 key 了,那么就不消费了;

  • Rabbitmq 死信队列,你们是怎么处理的?

回答:专门用一个消费者线程,去绑定死信队列 quene,消费死信队列的消息;

  • 你们之前的系统,有用过微服务吗,SpringCloud这块?

回答:用户中心改造过,nacos用来做注册服务,gateway用来做登录权鉴,验证token的操作。

  • 那你们用 SpringBoot 这块,starter 流程是怎么实现的,能讲讲吗?

答:通过@SpringBootApplication组合注解,run SpringApplication类启动的;@SpringBootApplication是组合注解,里面有@EnableAutoConfiguration和 @Configuration组合起来的,其中@EnableAutoConfiguration是开启自动配置,里面还有一个@Import注解 ,在AutoConfigurationImportSelector类里面会调用loadFactoryNames方法,加载你starter的jar下META-INF/Spring.factories这个配置,然后这个配置文件里面,配置了一些你这个starter需要用到的类,比如很多行 ..* = ... ,然后这些类都被当做组件加载到Spring容器中,直接提供给用户使用;

  • 分布式事务有了解吗?

答:我知道 Seata 分布式组件,支持 xa 模式和 tcc 模式(答的不全,还支持 AT(默认)、Seaga 模式) 追问:那你们的系统,是分布式的,还是单体多机的模式 回答:用了单体多机模式;

  • 我看你简历写了分表处理几千万黑名单数据这个,是用的分库分表吗?

答:只是分表没有分库,按照黑名单数据,里面身份证地区代码开头做区分,往对应不同的表前缀存就行了;

  • 那你们的系统都没有用分布式的吧?分库分表这些也没用到?

回答:是的

  • 你还有什么想问我的吗?

我问他:你们技术栈:他回答:我们主要用 SpringCloud 微服务这块,中间件 kafka Redis,MySQL 分库分表;

面试心得:问答环节一个小时,前面的问题,80% 还是基于你简历写的技术栈去询问沟通,有些回答上了,有些没回答上;最后问的这两个问题,感觉对方应该主要是分布式微服务这块技术栈,可能经历不太匹配。就我目前了解到的那点微服务的技术,也不敢说自己用过分布式,不然他应该会追问你服务怎么拆分的,分布式场景下的一致性问题等等这些!如果要投,有分布式微服务要求描述这块的岗位,感觉还是得再学一下,再融合到自己项目中去;这次面试,也是说等通知,应该没戏了!

16 某基金公司复试

  • 自我介绍:挑一个你最熟悉的项目说吧,然后用了哪些技术栈,你对哪块技术熟悉?

  • 你工作这么多年了,解决过哪些复杂的问题,系统设计上的问题,还是生产中处理过的问题,说一下?

  • RabbitMQ 死信队列了解吗,怎么处理的?

  • 中间件用过哪些,Redis 怎么用的,说一下场景?

  • 你生产处理过内存宕机的问题对吧,当时怎么分析解决的?

  • FullGC 的情况说一下,怎么排查解决的?

面试心得:二面应该是通过,问的不是很难,之前整理过的问题都答上了,整个过程20多分钟,约了下周HR三面

17 中关村科金复试

  • 自我介绍;

  • 微服务你用过哪些组件;

  • 系统上的这些中间件环境你搭建过吗;

  • 多久能到岗;

  • 介绍了下他们是做音视频开发的,产品需要部署到客户现场,需要驻场部署。

面试心得:问了多久能到岗,是否接受驻场,可能双方没有意愿吧,我嘴上接受驻场,但是感觉还是有点不太想去,对面听出我的口气,最后也没给我offer;

18 和迅网(财经咨询)

  • 说一下 cas 和 synchronized;

  • 用过哪些锁你都说下;

  • 介绍公司业务模式,系统业务流程描述,以及你用过哪些技术;

  • 介绍一下你们的系统吧,支付这块是怎么实现的?

  • HashMap 扩容以后,数组下标会变吧,扩容以后,如果再去 get,获取数据的时候,这个哈希值变了吗?

  • 说一下你知道 SpringCloud 组件,知道哪些都说出来?然后用过哪些?

  • 你们微服务这块,怎么做的?具体的实例,是怎么部署的,多台吗,然后怎么做负载均衡的?

  • Redis 用过哪些数据结构?

  • 消息队列用的啥?

  • mysql 分表处理几千万数据,怎么处理的?

面试心得:30 分钟挂。

19 恒昌利通现场复试

面试地点:华腾世纪公园E2座3A层

  • 本来是现场技术总监二面,领导开会让我等了 20 分钟,估计还得等;

  • 所以 hrbp 先面了,先聊了一会儿,问到我毕业时间,是不是统招本科,空档期在干嘛,现在有 offer 吗,2011 年毕业,2013 年才参加工作,当时为啥。2013、2015 的时候离职原因是啥?

(我内心:现在不都2022年了吗,还问2013年离职原因) 问了现在薪资和期望薪资待遇的情况,我说期望多少,她说高了肯定给不到,现在行情也不好;给我介绍了他们公司的几条业务线,消费贷,汽车融资租赁,房抵贷渠道,然后还有自动货柜出售商品业务;公司有上万名员工;(当时我看他们这层楼人都不多,而且办公环境也不好,有点质疑心态)

  • hr 问我上家干了这么多年,有哪些成长;

我:说学了一些新技术,学会了金融业务。我大概讲了一下。她又问我怎么用新技术去解决问题的,我说你懂技术吗?她说懂,让我讲给她听;然后我开始讲生产中处理过的比如内存溢出、宕机,讲到一半说到细节,她听不懂了,被喊停。后来开始聊其他的,聊了几分钟;问我对项目做过哪些复盘,你的整理总结文档输出沉淀有哪些?有没有团队分享?我说我有记录总结博客,需要把博客地址发给你看下吗?hr还是把刚才的话题谈回来,问我解决过哪些问题,有哪些成长?

然后我盯着她(内心:刚才不是给你讲了吗,你不是听不懂还问?), 她就反问我道:我说的不明白吗,问题描述不太清楚吗?(内心很无奈:现在hr也这么装吗,是显得在公司做bp有更高价值,都开始问候选人技术问题了?) 我继续跟她扯,打算敷衍一下;前面扯完了,说到薪资结构,14薪,会在offer里面体现;然后社保公积金基数,只按照8k缴纳;

  • 技术总监来了,上来让我自我介绍,让我讲了下上家公司的业务模式、项目流程;

  • 你解决过哪些问题?我然后就说了还是刚才内存宕机的问题。

追问:如果你感觉你的系统有内存溢出,但是不用 jmap 命令做 dump 也不用 JVisualVM,怎么去排查?我答不出来。

  • 做过哪些优化,我说了 MySQL 查询,一个大表用 limit m ,n 优化的场景方案;

  • MySQL 是不是做的集群,怎么保证高可用;

  • 然后给我介绍了他们的系统,说进来以后会干什么,感觉有点含糊,具体到哪个组做什么业务也没说,问用哪些技术栈也回答的很含糊,说什么新系统老系统都有

  • (内心:技术管理可能混乱,项目杂不规范)

面试心得:

  • 对 hrbp 印象不好。盘查户口式的问,感觉都是一些官方套话,没啥实际意义。他又不能决定最终面试结果;

  • 有可能会通过,有可能通不过,感觉过了也不想去,薪资不行,公积金也低,项目成长也不行。虽然现在一直没工作,行情也不好,找不到好的;但是也不想去。

20 驰骛信息(DMP)

  • 你简单介绍下自己业务模式、工作经历,用过哪些技术栈;

  • 你们 git 分支是怎样做的,上线是怎么操作的;

  • docker 容器用过吗,搭建过吗;

  • 平时线上怎么排查日志的,直接通过docker还是?

  • 用过哪些微服务组件;

  • RabbitMQ 有哪些场景可以用?怎么保证消息不重复消费?

  • MySQL 你们怎么优化的?

  • b 树和 b+ 树有什么区别

  • 聚簇索引和非聚簇索引的区别

  • JVM 类加载,双亲委派为什么?

面试心得:20分钟结束,挂!但是等了两天又通知线上复试。

21 某基金公司HR面

  • 你先自我介绍自己?

  • 你为什么离职?

  • 你这些年,在上家公司干这么久,你的成长,在哪里?

  • 你遇到过最大的困难是什么,怎么解决的?

  • 你这几个月空档期,除了家里有事,还干了什么?

  • 你期望薪资多少?要了 xxx。

  • 你还有什么要问我的吗?

HR介绍自己公司待遇。Base*12 + 4 (16薪),全额五险一金 面试心得:20 分钟结束,等通知(后来询问得知面试挂),应该 是面试薪资要高了,一面的时候,面试官就说过这个问题,觉得技术要求达不到这个阶层吧,而且现在大环境不好,降薪的也很多。

22 成丰快运(物流)

  • 简单自我介绍

  • 挑一个你熟悉的技术栈,你认为你哪块熟悉或者擅长?

  • 你们的系统有多少用户,有没有高并发场景,怎么解决的?

  • 你有过哪些性能方案优化或者代码上的优化场景吗?

  • 你们项目团队有多大?

  • 问了期望薪资,我说现在多少,期望年 xxx 左右就行。他说到底是左还是右?我说当然右更好了

面试心得:20 分钟结束,等通知没戏了。破拉煤物流公司,还玩什么高并发,呵呵哒。

23 驰骛信息_复试

  • Java 异常体系;

  • 多线程怎么用的;

  • 过滤器和拦截器的区别和使用场景;

  • mysql undolog、redolog、binlog;

  • git 分支你们怎么管理的,git命令;

  • 说一下Synchronized和Lock的区别;

  • MQSQL 索引怎么优化;

  • RabbitMQ 几种 exchange方式;

  • RabbitMQ 怎么做到消息不重复消费;

  • linux 替换文件的几种方式;

  • 说下查看jvm参数;

  • JVM 命令启动参数;

  • docker 和 k8s 有了解过吗;

  • Redis 用了哪些数据结构,场景。BitMap 用过吗。

面试心得:50分钟。问了期望薪资,我说xx,估计对面嫌高了,又问能否接受加班,我说短期加班可以,长期996吃不消。

24 某银行科技子公司

  • 你们的请求报文是怎么样的,报文格式、长度?

  • https 证书怎么加密的, 证书怎么生成的;

  • SpringCloud 用过哪些组件;

  • feign 负载均衡;

  • 分布式事务;

  • 怎么线上排查问题;

  • mysql 悲观锁 乐观锁 怎么实现;

  • mysql 慢查询,优化方式;

  • 如果系统宕机,你怎么分析,怎么去 dump 文件,解决;

  • SpringCloud 降级 限流 负载均衡这块怎么做的;

  • 还问工作这么久了,带过团队没有。

面试心得:30分钟。找人内推的,等待通知;

25 某小贷公司

  • 放款对账出现过哪些问题,什么原因?怎么解决的?

  • 计息方式有哪几种?等额本金和等额本息的区别;

  • jdk 1.7、1.8 区别;

  • io、nio、bio 区别;

  • Java 动态代理怎么实现的;

  • Spring bean 的作用域;

  • mybatis 和 Hibernate 区别;

  • 前端xss攻击和csrf攻击 怎么预防;

  • 有这样一个场景。比如用户还款日,最后一天,本来还钱了,然后由于系统原因,代扣接口失败了。然后第二天,给这个用户产生了罚息,这种情况应该怎么处理?

  • 我需要生成一个分布式 id,要看到业务含义和自增数量。业务这边需要包含商户号,每个商户不一样,每天的日期需要包含在分布式 id 里面,而且每天有流水千万, 可能并发的时候高达几十万数量,怎么去设计这个分布式 id。

面试心得:50分钟,主要是业务问题答的不好。HR晚上通知挂。

26 某银行科技子公司复试

  • 你学校是什么?2013 年之前的项目经历是什么?你不写,怎么根据你的级别,给你定薪资呢?

  • 讲讲你们以前的业务模式?放款的钱,怎么确保钱能打给学生,是用于培训的?

  • 你从0到1 的那个系统,是怎么做起来的,那个系统,流程中哪些账户?

  • 你认为你的优势在哪里,能给我们公司带来什么?

  • 你的微服务是怎么拆分的?

  • 你还有什么想问我的吗?

面试心得:面试聊了40分钟左右,说薪资只能跟之前持平,不能涨薪这样子。

27 某银行科技子公司

  • 自我介绍;

  • volatile 关键字起到什么作用;

  • MyBatis 平时怎么用的,有哪些好处,List参数怎么传的?

  • MySQL 优化案例;

  • 你的摄像头,怎么有点暗呢?

  • 你三月份离职到现在都没工作,你是不是有点任性啊?

面试心得:面试聊了 30 分钟左右,咨询内推人员,一面通过,等待银行内部员工进行二面复试。

28 重庆荆棘鸟软件

  • 请自我介绍(上来就是hr面,灵魂拷问开始)

  • 你 2013 年离职原因是什么?

  • 你觉得你遇到的最大困难是什么,是怎么解决的?

  • 你之前在工作上经常感到有压力吗?

  • 你如果在工作中,跟别人发生分歧,你该这么做?

  • 如果产品或者用户提出来需求做不了,你该怎么办?

  • 你跟领导曾经有没有过发生分歧不同,是否要坚持自己的方案?

  • 如果有一个分工任务,你的同事不愿意配合完成,他什么都不想做,甚至就是不愿意工作,你应该怎么办?

  • 如果分给你的开发任务,你完成了,别人的任务还没有完成,你应该怎么办?

  • 你曾经帮助过别人吗,是否经常在小组里面帮助人?

  • 你们的绩效是怎么打的,是否有过被扣绩效的情况,为什么?

  • 你今天有一个需求需要上线,而同时生产出现了一个 bug 你该怎么做,哪个优先级高?

  • 你做过需求分析这块吗?

  • 如果你参与别人的会议,遇到一个自己觉得好的方案,是否会提出来让别人按照你的去做?

  • 你觉得你最大的缺点是什么?

  • 你在生活上或者工作上遇到过最大的挫折是什么?

  • 你对加班怎么看?(然后介绍了他们公司的一些加班情况)

  • 问完这些还不够,后面还发了一个链接,让做30分钟的性格测试,服!

下午17:00技术经理开始面试:

  • 说一下 JVM 内存结构;

  • 有没有用过 JNI;

  • 音视频这块东西,做过吗,对音视频SDK了解吗?

  • 内存溢出有哪些场景,怎么排查的,怎么解决?

  • 你们日志是用的什么,怎么分级打印的?

  • 代码测试这块用过吗,代码测试覆盖率怎么做的?

  • 对 http,tcp/ip 熟悉吗,用过一些抓包工具分析没有?

  • UML类图画过吗?

  • 我们的音视频服务,是用的开源的,如果让你学习一项新技术,你应该怎么做?

面试心得:搞笑 hr,灵魂拷问呢,工资低,加班也不少。

30 某民营银行

  • 自我介绍;

  • volatile关键字用处和场景?

  • 你拆分大文件,思路是什么,代码还是 linux 拆分,哪个效率高?

  • 如果要多个文件合并成一个文件,怎么办,有什么方式提高效率?

  • 你分表处理几千万黑名单数据,是怎么做的?

  • 你用过分布式组件吗?分布式事务 Seata 的 AT 模式有什么问题?

  • 你系统宕机,当时是怎么分析定位问题的?

  • linux 怎么会杀掉你的进程,你们系统内存多少,JVM 启动参数怎么设置的,为什么申请虚拟内存会超呢?

  • 如果你的系统是集群的方式,那么定时任务这块,怎么保证一个应用跑?

  • 另外一个业务面试官,就问了一个业务问题:我看你简历上写的账单、台账、还款单据,你能分别解释一下这三者的含义吗?

  • 你三月份离职到现在都没工作,为什么?

  • 面试心得:面试聊了30分钟左右,一面通过,说等待一周内会进行二面复试。

写在最后

在没有同行业经验的情况下,面试官基本会死磕技术,因为讲业务他听不懂。所以建议技术人在 30 岁以后最好立足于一个行业,不然面试真心太难了。当然如果近期有面试需求但是没有好的面试手册参考的话,不妨看看LZ前段时间整理的一份2023最新Java面试八股文教程

需要的话私信【666】即可~

2023Java面试突击手册

注:篇幅有限,资料已整理成文档,文末领取!

​一、算法(大厂必备)2023版

​二、设计模式(工欲善其事必先利其器)2023版

​三、Netty + MQ + kafka(底层原理+面试题)2023版

​四、zookeeper + Dubbo(技术干货+面试题)2023版

​五、Mybtis + Redis (底层原理+面试题)2023版

​六、Http协议 + Linux (底层原理+面试题)2023版

​七、Mysql (底层原理 + 面试题)2023版

​八、Spring +SpringMVC +SpringBoot(底层原理 + 技术干货)

​九、经典面试题 + SpringCloud(大厂常见面试题)2023版

十、Java基础 + JVM(技术干货+底层原理)2023版

十一、多线程 (底层原理 + 技术干货)2023版

十二、实战项目(Github爆火)2023版

项目架构图

最后

注:篇幅有限,资料已整理成文档,需要的小伙伴私信【666】获取~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值