2020届个人秋招Java面经总结

一、前言

两个多月的跌跌撞撞,秋招到现在基本上尘埃落定了。这里分享自己在这个过程中的一些感悟,希望能帮到大家。
(1)简历真的很重要,特别是之前没打acm、没竞赛经历的,争取多做几个项目并且找个实习,否则笔试机会都没有
(2)算法真的很重要,从现在开始每天多做几道剑指offer和LeetCode,锻炼自己的解题能力,不然笔试会很难过
(3)到了面试的时候,要求自己对于简历上写的东西都要很熟悉,基础的东西都要会,这里推荐去年几个师兄写的总结(写的很全面,必看!!这里不再赘述):
迟到的求职经验分享,附20+篇面经
2019届个人java秋招总结
JAVA秋招学习资源

二、面经

从7月份开始零散的投简历,8月实习结束之后开始海投,提前批投的基本上全军覆没,各种没消息、笔试挂。前前后后一共投了差不多五六十家。
给了面试机会的有:有赞、珍爱网、乐信、fordeal、bigo、微保、微众、去哪儿、顺丰
不过大多都是一面挂。。。
下面附上部分面经,其他的由于当时没有及时记录已经记不太清了

bigo

一面:

1、自我介绍
2、项目相关
3、redis5种数据结构
4、spring与springboot的区别
5、Java的动态代理方式
6、i++是不是线程安全?为什么?Java有哪些办法让i++变成线程安全?
7、讲一下ThreadLocal
8、java中有哪些引用?(强软弱虚)
9、如何判断一个对象可回收?什么时候会触发gc?
10、数据库多事务并发时会出现什么问题?MySQL的默认隔离级别?
11、讲一下MVCC
12、tcp的拥塞控制有哪些算法?

二面:

自我介绍
有哪些线程池?阻塞队列有哪些?
线程池参数,流程?为什么达到corepoolsize后要放队列里而不直接创建线程处理?
hashmap讲一下?concurrenthashmap讲一下?
hashmap允许空值,get的时候如何判断是不存在还是值为null?
讲一下JAVA的锁?
synchronize和reentrantlock有什么区别?
reentrantlock的底层是如何实现的?
volatile的作用与实现?
手撕:反转句子
InnoDB/MyISAM 之间的区别
如何创建与使用索引?要注意什么?
有两个sql:a and b and c与 b and c  如何创建最少索引使得两个语句都匹配?
项目相关问题?
redis常用数据结构?
redis主从复制?主服务器宕机如何选举?如何通信?持久化?

三面

自我介绍
1、操作系统的特点,有什么作用?(内存管理、文件管理、cpu管理等)
2、操作系统的内存管理?
3、为什么分页会出现数据覆盖?
4、段页式的结构画一下?(画图全靠瞎编)
5、进程的内存模型?(瞎扯了pcb、线程,然而并不对),进程有哪些资源?
6、我们来做道简单题吧(两个有序链表合并成一个!!)面试官说不允许用堆(我以为是数据结构那个堆,结果是不允许new一个节点。。。)
7、这道题太简单了,我们再做一道(一个m*N矩阵,从左到右、从上到下递增,给一个数,找到它在矩阵中的横纵坐标并返回)
8、哪些专业课你掌握的比较好?说一下计算机网络的通信?TCP的特点,如何保证可靠性?说下拥塞控制?
9、有什么职业规划?

珍爱网

一面:

自我介绍
1、有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破, 在第N层以下的楼层落下不会摔破。给你2个鸡蛋,设计方案在最少次数找出N;
2、项目相关;
3、synchronize和reentrantlock有什么区别?
4、reentrantlock的底层是如何实现的?
5、如何看待volatile,有什么作用,如何实现?
6、线程有哪几种创建方式?用线程池怎么创建?
7、线程池的参数如何配置,工作过程?
8、Java有哪些方式实现线程安全?
9、JUC下的原子类的实现原理?
10、如何实现一个线程安全的单例模式?
11、平时用过哪一些设计模式?(单例、工厂、抽象工厂)?说一下观察者模式?
12、SQL语句如何调优?如何查看一条SQL语句有没有走索引?
13、索引的底层实现?(b+树)还可以用什么实现?那为什么要用b+树?
14、MySQL的隔离级别?各个级别会有哪些问题?如何解决幻读?
15、如何理解http协议?如何规定为json格式?服务端返回的响应头有哪些内容?
16、NIO与BIO的区别?NIO是如何实现的?

顺丰

一面

自我介绍
知道java哪些集合类?挑一个最熟悉的说一下它的底层实现?
哪些集合类是线程安全的?hashtable和concurrenthashmap的区别?
hashset有什么特点?如何实现不重复?
用过synchronize和volatile吗?说一下他们各自的特点以及实现?
了解线程池吗?说了主要参数以及工作过程
了解哪些排序算法?说下二分查找的原理?
了解哪些设计模式?说下观察者模式
单例模式有哪些实现方式?(懒汉饿汉)如何实现线程安全的单例模式(双重检查、静态内部类、枚举)
什么时候单例模式不适合用枚举(???怎么反着来??,不会)
spring了解吗?ioc有什么特点?如何理解控制反转?
spring如何管理bean?
mybatis有什么特点?与jdbc的区别?
mybatis如何实现对象关系映射?
MySQL如何调优?(说了些SQL调优、建索引以及注意事项,建表的字段等),这些都是SQL的调优,
还有其他的吗?(分库分表,说了只知道垂直拆分、水平拆分)
数据库引擎?以及区别

二面

自我介绍
笑着问你们怎么都是秒杀系统,是一个老师教的?(无奈跟着笑)
怎么实现限流防刷?(balabala)追着问怎么实现
排序算法有哪些?说下插入排序的原理?
java NIO了解吗,底层如何实现?
有几个线程,要求到某处时等着,待最后一个线程到了再开始运行,如何实现?
画一下tcp4次挥手的过程
还有一些问题,记不太清了

hr面

自我介绍
介绍实习经历,做了什么?最大的收获?
简历上的项目是公司的还是学校做的?介绍一下这个项目,自己负责哪些部分?
项目最大的难点是什么?
自己有什么优点?缺点?
未来工作的规划?
在学校印象最深刻的事?
等等(都是些常规hr问题)

最后

秋招真的是 实力+运气 双重影响的。面试的知识点一定要掌握好,但有时候遇到面试官问到刁钻的问题,不会也很正常,没必要怀疑自己,查漏补缺就好。
在这里插入图片描述

你可能感兴趣的:(面经)