一位朋友秋招面试了17家公司(都是中小公司或者银行),Java 后端岗。下面是他的个人情况、求职经验已经这17家公司的面经。
个人情况和求职经验
其实现在是挺后悔大学没有好好的学习的,因为基本上都会提到一些成绩相关的事情,每次填成绩都只能填个50%(实际上更低),并且还有挂科,没有奖学金,没有学生经历,没有竞赛经历,没有实习经历,简历上真的是空空如也,自我介绍的时候也是一分多钟就全部讲完了(有时候挺尴尬的)。
对于中小厂,其实在八股文方面都是很常见的内容,背好JavaGuide,做好每次面试之后的复盘,然后多面试,这样就能应付大部分的八股了。
然后就是项目这一块确实是需要认真对待的,起码项目中的每一个细节你都要知道,而且有一些面试官会问你项目中的难点和亮点(每次被问到说实话我都没啥东西说,我觉得没啥难点),所以一定要提前准备。
对于整个找工作的流程的话,首先大二下开始网上的自学,大三某天机缘巧合下看到了 JavaGuide(那时候刚开始背八股文),然后就发现真好用,后来也秒加入了知识星球。
秋招大概是八月份弄到十月底,总共投了上百分建立,笔试几十个,面试十几个,太菜了,项目准备太不充分了,以至于只有一个小厂的offer,给我拒绝了。
然后春招又换了guide哥推荐的那个小说精品屋(自己没做啥优化,所以也没啥亮点),(寒假本来想着一定狠狠刷算法题,然后又是不了了之)三月份开始投简历,没刷多算法的恶果出来了,很多中厂的中等笔试题都过不了了,倒在了笔试上。到目前为止投了大概几十份简历吧,面试的也是十几个。最后感觉进厂没有机会,就瞄准银行投递,最后也是拿到银行的offer。
最后,我其实是一个很懒散的人,大学宿舍里没有学习氛围导致成为了一个摆子,找工作最早的踌躇满志进大厂,现在这个结果不过也不算坏。现在就是专心搞毕设写论文毕业喽,最后这几个星期放松一下, 5.12一定要狠狠的通宵玩塞尔达。
希望大家都加油,都能努力找到一个让自己满意的工作
面经
大多数都只记录了一面,二面之后由于一般是hr面或者二面答的都不太好就没有心情作记录了。
万得
- 为什么要用mybatis不直接用sql
- jwt的组成?为什么要用jwt?
- 排序算法的稳定性
- hashmap为什么是两倍扩容
- java的锁的知识你了解吗?悲观锁乐观锁的实现?cas是什么?
- synchronized底层原理?
- 为什么要用restful风格?
工行软开提前批
太看重学历和成绩, 群里70%的985,我成绩差有挂科给一顿喷。
- 解释一下二分查找
- 你是怎么学mysql的
- 然后就是闲聊和喷成绩,体验很差。
同花顺
- jvm内存结构,垃圾回收策略,垃圾回收算法
- 排序算法,时间复杂度
- mysql索引你知道吗?
- 项目如何分表?
- 数据库的隔离级别?
- mysql锁?
富士通南大软件
- 计算机网络七层结构,五层结构?
- restful具体是干什么的?
- jwt从cookie到jwt解决了什么,cookie是干什么的。
- 还有些不记得了
浙商银行
- mybatis # 和 $ 区别
- mybatis 一二级缓存
- @autowired和@resource区别
- springboot自动配置原理
- 数据库隔离级别,可重复读解决幻读怎么做的?数据库本身的mvcc
招银网络
一面:
- spring的自动装配过程
- spring中的拦截器和过滤器区别?
- 接口和抽象类的比较
- springboot比spring好在哪里
- mybatis好在哪里
二面:
- 设计一个考核系统,数据库如何设计(这种题之前真不会,乱答一通)
- mybatis String如何映射到varchar
- mybatis 比如实体类中是string,数据库中是integer会怎么样
- 设计一个权限系统
面试官建议还需要多多学习
卓望数码
- 解释一下泛型的作用,泛型的桥方法?泛型擦除是什么?
- ArrayList和LinkedList的区别?ArrayList的扩容方式?
- 为什么不推荐使用内置线程池创建方式?
- 什么是cas?
- Mysql 索引设置注意点?索引类型?索引失效场景?
- redis 持久化方式?
- 高可用方面你知道吗?
- Spring常用的注解?两种注入方式的区别?SpringBootApplication这个注解的解释?
-
{} 和 ${}的区别?
深圳同为
-
你用了ThreadLocal 为什么要用这个,其他线程可以获取到这个信息吗?要怎么获取到
-
你使用了策略模式,为什么不用模板方法模式,这两个有什么区别?设计模式需要看看吧
-
你系统中有什么难点?
-
为什么要用jwt?有什么优点?
-
Java的设计原则是什么?为什么要用Java的设计原则
-
mysql如何查询慢sql?为什么会有慢sql?数据库的优化手段?
-
如何踢人下线?使用jwt这种
-
线程的状态,运行xxxx这种
-
http状态码?
-
各个隔离级别,能防止什么?
-
hashmap为什么使用的是红黑树不是其他树
-
synchronized的lock的区别?
-
Spring如何管理事务
-
Spring的几个事务传播级别
顺丰
-
如何进行数据库性能的分析,如何排查慢sql
-
数据库中你的小说时怎么存储的
-
数据量很大的数据放到redis中,需要做什么处理比较好
-
Java中的锁?
-
Mybatis中resultmap的继承
-
MybatisPlus的底层原理
-
HashMap和ConcurrentHashmap的区别
-
双亲委派机制,和类加载器,双亲委派机制的源码看看?(问比较多次了)
-
你用过Juc包下的哪些东西?
-
缓存雪崩,缓存击穿,缓存穿透,如何解决?击穿和穿透的本质区别是什么
-
聚集索引,覆盖索引
-
SpringBoot的自动装配原理。
上海银行
- 项目中怎么样使用策略模式实现用户认证
- 主键索引和唯一索引可以存储null值吗
- 判断链表有环
- synchronized锁的升级过程
- concurrenthashmap和hashmap
- 索引失效的场景
- in()一定会使用到索引吗
- 事务的传播级别
- 项目中你做了什么优化?这个可以好好讲讲
- mysql的缓存
用友kpi
- Hashmap的底层原理,有哪些遍历方式?
- 你用过SpringCloud吗?你用过哪些RPC
- 包装类的底层需要去看看, Integer(100)和Long(100)相等吗?
- 事务的隔离级别
- Spring有什么优点
- concurrenthashmap的原理
上海华测导航技术
-
介绍
-
rabbitmq做一些什么
-
redis数据类型,具体的用法
-
代理模式是什么,代理模式的具体使用场景
-
你理解的hashmap
-
Spring的注解
-
Rabbitmq高可用
-
所以说进程和线程的区别?
-
线程池,哪些线程池,有哪些拒绝策略
-
各种设计模式
-
autowired和resource的区别
同花顺
- Tcp头部组成,tcp滑动窗口
- 数据量很大的情况下,数据库要怎么加快查询呢
- 线程池,默认的几种队列,Java的几个默认线程池
- RESTful风格?jwt的具体说说?
- Spring中用了那些设计模式,具体用在什么地方
- 单例模式的使用方式?
- 怎么样使ArrayList线程安全呢?
- 索引的设置有什么要求呢?
- 锁的升级过程?
- 说一下自旋锁?
- mybatisplus分页插件实现原理,或者说mybatisplus的底层原理
- 工厂模式是用来干嘛的?(设计模式问的好多,真得看看)
- servlet是用来干嘛的? SpringMVC主要是干什么事情的?
- Spring的单例模式使用在哪里?
- JVM垃圾回收机制?如何判断需要回收?
交通银行
-
你对设计模式的理解
-
创建线程的方式 , start run 哪个是启动一个线程 线程池的优点是什么
-
数据库表优化的点
-
索引失效的点
-
谈谈你对软件工程的理解,结合你所做的项目。
思维爆炸
-
rabbitmq的作用
-
sql如何进行一个优化呢
-
mybatis的一二级缓存
契约锁
-
Jvm内存结构
-
项目如何实现策略模式的认证
-
线程池,过期时间的具体作用
-
如何判断一个对线是否该被回收
-
索引失效
-
如何优化一个sql
-
hash索引和b+数索引有什么区别
-
你理解的索引是什么?
-
覆盖索引是怎么样的
-
SpringBoot的自动装配原理。
永赢金租
-
说一下Integer包装类 两个包装类用== 比较会怎么样
-
redis的持久化
-
ThreadLocal的底层需要了解一下,底层的数据结构
-
redis持久化
-
hashmap底层原理
-
Spring的数据传播行为
-
如果项目在业务进行到一半宕机了你该怎么做?
-
如何防止小说被爬
参考答案
由于问题太多,我这里就不贴参考答案了,需要参考答案的朋友可以在下面 2 个资料中找到:
- 《Java 面试指北》
- JavaGuide 在线阅读网站:https://javaguide.cn/