考验失败后的春招(面试题目总结)

本人由于考研失败,无实习,并且项目也比较水,从三月中旬开始投简历到现在一个多月,面试了将近20家吧,现总结一下一些的题目,希望能帮助到大家。

字节跳动

(一面)57 min

1.String类不变对象好处?(提高字符串常量池的效率和安全性,拷贝时直接复制地址;不可变对象线程安全)
2.如何设计一个不可变对象?
3.Synchronized和ReentrantLock?(Synchronized:从偏向锁,轻量级锁,重量级锁以及Mark Word字段的信息;ReentrantLock:主要说AQS,一定要说清楚)
考验失败后的春招(面试题目总结)_第1张图片

4.内部类怎么引用外部类?为什么只能引用final变量?(外部类的应用以及局部变量作为构造方法的参数传入的,编译时候代码可以看见;final是为了保证内部类变量和外部类变量的数据一致性,分基本类型和应用类型来讨论)
考验失败后的春招(面试题目总结)_第2张图片

5.线程池的优点?一个线程加入线程池的执行步骤?
6.Redis持久化机制?(rdb,aof,其中AOF重写要说清楚,什么时候创建线程,怎么写缓冲区)
在这里插入图片描述
考验失败后的春招(面试题目总结)_第3张图片

7.Redis内存淘汰机制?(以过期数据:lry,ttl,random,lfu;所有数据:lru,randow,lfu;no-eviction)
8.http,tcp,网络方面
算法:
8.从索引m到n的位置翻转链表(递归,迭代)
9.给定一个有向无环图,求解整个图的所有路径权值之和最大的那一条(DAG图,动态规划)

(二面)50 min

1.Redis跳表
2.Redis主从复制
3.锁机制与Innodb锁算法
考验失败后的春招(面试题目总结)_第4张图片

4.Mysql的MVCC(最好从事物修改记录的时候事物id变化以及ReadView的创建等说)
5.双亲加载模型(自底向上检查类是否加载过,自顶向下尝试类的加载)
6.http,状态码301,302区别?
考验失败后的春招(面试题目总结)_第5张图片

算法:
6.找出前K个最小值(维护一个k的最大堆,然后每次与堆顶比较)
7.LRU(双链表+hashMap,写了近20分钟)
字节跳动整体的情况就是算法,基础问的还好,自己由于有点紧张且项目太水,二面就结束了。

美团

(一面) 48 min

1.GC
2.双亲委派模型
3.volatile(锁总线,加Lock前缀,保证原子性)
考验失败后的春招(面试题目总结)_第6张图片

4.深拷贝,浅拷贝
5.IO流分类
6.单例模式,工厂模式,动态代理,单例模式为什么加volatile?
考验失败后的春招(面试题目总结)_第7张图片

7.hashMap,hashTable,concurentHashMap
8.IP 数据报传输的过程:

( 无论怎么传,IP 源和目的地址不变, 但 MAC 目的和源地址会 变) IP 数据报需从主机 A 上传送到主机 B 上,主机 A
首先查找路由表; if( 目的主机是与自己在同一个网段内) 主机 A 查询自己的 ARP 表; 如果存在目的 IP 地址到 MAC ,
的映射,将 将 MAC 地址作为目的 MAC 地址封装成帧,发 给主机 B. 如果没有, 发送 ARP
请求广播给网段内的所有主机,来查询该目的 IP 地址的 MAC 地址 else if( 发现了能与目的网络号相匹配的表目)
则把报文发给该路由表目指定的下一站的路由器或直接连接的网络接口; 的 报文发送到下一站时,数据帧的目的 MAC
地址是下一个站路由器或者网络接口的 MAC 地址, 而 而 IP 头部的目的 IP 地址是主机 B 的 的 IP 地址; else
寻找标为“ 默认” 的表目 , 把报文发送给该表目指定的下一站路由器;

算法:
1.非递归实现后续遍历(递归,非递归)
2.最长回文子串

(二面) 50 min

1.ThreadLocal原理,内存泄漏
2.线程池
3.AQS
4.项目
5.http加密,1.0与1.1的区别
算法:
1.相同朋友(并查集)
2.AVL插入(左旋,右旋,先左后右,先右后左)

*(三面) 20 min *

三面小姐姐走走流程,估计不招人了,而且自己二面答的也不好随便说说,就没了…

由于基础部分都问的差不多,以下面试就说一下算法题

阿里

(一面) 50 min

算法:
1.素数筛
2.快排

(二面) 40 min

算法:
1.完全背包
2.拓补排序

(三面) 50 m不n

算法:
1.堆排序

(四面) 42 min

算法:
1.最小生成树(Kruskal,用优先队列保存权值,每次选点没访问过的且权值最小的)
2.冒泡排序
总结:这里要鄙视一下阿里,一个部门面完,然后进池子,在下一个部门面,反正有面不玩的面试。

网易

(一面) 53 min

算法:
1.LRu
2.最长公共子序列

(二面) 40 min

算法:
1.排序
2.找出数组中出现超过一半的数

其余的大厂就不说了,反正都挂了,其实我感觉自己算法基础部分都答的还好,应该是没实习和项目水的事,还有估计也不怎么招人啦(唉,考研菜鸡)。

小厂面了:友塔游戏,奇虎,顺丰,还有一些银行等等,总体上算法题出的都不难,问的不深。

建议大家无论实习还是秋招都先去小厂多面面,就当训练自己交流沟通能力了。

其实我最后悔的就是考研了,本来就没有什么科研的心,看着别人保研的保研,考研的考研,自己跟风考研,其实也是怪自己,菜是原罪,希望每个人都能选择适合自己的道路。

推荐一些写的不错的博客:
synchronized锁
tcp三次握手四次挥手
Spring IOC源码

你可能感兴趣的:(面试,java)