个人近期阿里、字节、美团笔试面试记录ing....

3.8号阿里笔试
第一题 缺失的卡片 一组有序的数组,3 4 6 8 10 。让求从第一个数开始,第K没有出现的整数 (AC)
第二题 小明有一个工厂,工厂有m个任务,然后有n个员工,需要完成p的收益。其中每个任务需要的人数为a[i], 每个任务的收益为b[i],要求能达到收益p的完成任务的方式
可以不全部完成任务 (AC)

3.10号 阿里面试一面,视频面1.5h
说一下java基础,hashmap了解吗,时间复杂度是多少,底层是什么数据结构。
Java并发,线程创建,多线程的四种实现
Redis数据结构,redis跳表是怎么实现的。
Mysql底层数据结构,b树和b+树的区别
B+树怎么实现的,是二叉树嘛
BST Trie树 红黑树的了解
如果一个b+树的节点存不下了会怎么办,分裂
进程间通信方式
Word单词拼写检错你怎么实现,hashmap存储所有单词然后比较
字典树怎么实现的
如何读取多个文件,并统计单词出现的频率
Java进程和mysql进程如何通讯
算法题是
反转链表迭代法和递归法
如何实现两个大数相加
(通过)

3.12号 阿里面试二面,视频面1h
乐观锁和悲观锁,
java里面final finally finalize区别,
zookeeper,
arraylist和linkedlist区别,
hashmap和treemap的区别,
为什么用红黑树实现treemap,
java里面的反射原理。
算法题是实现斐波那契数列,
找到数组中最小的k个数
(还在流程中,面试官让等通知)

3.13号美团笔试
1.转置矩阵
2.在字符串中查找所有数字,然后按从小到大顺序返回。
3.求链表中连续K个数的众数
4.蚂蚁上树问题,二叉树,每个节点可以容纳的蚂蚁给定,但是不能在相连的节点放蚂蚁。
5.求出高度下降的路径,去某地旅游,没个经典海拔高度,按照海拔高度下降的顺序旅游,求出路径。
(AC123)

3.14号字节笔试
1.安排圆形排列的座位,st到最近的人的距离最大
2.灯泡开关问题,圆形排列的开关,一个状态变化,引起相邻两个的状态变化
3.棋盘问题,设计一个棋盘,看是否有唯一解,可以放是“。”不可以放是“×”,放入1*2或2*1的棋子,如果可以放满,且方法唯一,返回true,反之false。
4.病毒问题,病毒随机变异,子代可能致命。
渣了

3.16号字节面试
一面:
1. TCP/IP协议包括几层,应用层的主要协议,ICMP协议是第几层协议。简述CMP协议。
2.TCP的粘包是什么?Tcp如何保证可靠性的?
3.java对象的创建方法?
4.读锁和写锁是什么?
5.死锁的原因和防止死锁。
6.linux的ping命令。
7.访问一个页面的过程,https是对称加密还是非对称加密?
8.linux进程间如何通讯的?
算法题:删除二叉树的右指针,返回二叉树前序遍历顺序组成的链表。
(通过,面试官觉得简历不错)
二面:
主要问的项目,感觉不错
二面:
1.cookie与session的区别,java如何创建一个session对象
2.线程与线程池的区别,如何创建一个线程池,线程池的应用场景。
3.http协议的原理,http和https的区别,https如何实现加密的
4.c++中智能指针了解吗?虚函数和纯虚函数了解吗?
算法题:
1.矩阵旋转90°。
(但是挂了,面试官说基础不好,┭┮﹏┭┮,C++不会啊,我只是写了个学过C++,想面JAVA,结果C++被问蒙了。
之后被推到了字节另一个部门,约了下周面试。)

3.18号 美团面试一面
1.设计模式,单例模式、工厂模式、代理模式。简述代理模式的原理。代理模式就是客户端不能直接访问一个对象,需要一个中介来帮忙完成任务,这个中介就是代理对象。由于某些原因需要给某对象提供一个代理以控制对该对象的访问,这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。主要优点:保护目标对象,代理对象可以扩展目标对象的功能。将客户端与目标对象分离,一定程度上降低了系统的耦合度,增加了程序的可扩展性。
2.JVM垃圾回收算法,复制算法,标记清除算法。 老年代的GC算法,串行GC和并行GC,具体流程。 进行JVM参数调整的目的是什么?通过分配合理的年轻代和老年代区间,减少FullGC次数。
3.给定一个2亿数字的数组,如何判定某个数是否在集合中,假设数组中没有重复元素,且数字大小在5亿以内。 HashSet可以,还有一种方法
4.列举排序算法。快速排序和堆排序的实现原理、时间复杂度。
5.乐观锁和悲观锁。高并发的场景下用哪种。
6.死锁,死锁的原因,如何防止死锁。
7.mysql的索引,B+树的原理,聚簇索引和非聚簇索引的区别。
8.java线程池,常见的参数,7个,线程池核心线程大小,线程池最大线程数量,空闲线程存货时间。工作队列,线程池为什么使用阻塞队列,而不是用非阻塞队列?线程池如何处理任务?当一个任务被提交到线程池以后,首先会找有没有空闲存活线程,如果有则直接将任务交给这个空闲线程来执行,如果没有则会缓存到工作队列,如果工作队列满了,才会创建一个新线程。然后从工作队列的头部取出一个任务交给新线程处理,而将刚提交的任务放入工作队列的尾部。线程池不会无限制的去创建新的线程。
算法题:删除链表的倒数第k个节点。
(应该是过了)
#面试##笔试题目##面经##美团##字节跳动##Java工程师#
全部评论
过了吗
点赞 回复
分享
发布于 2021-03-13 01:36
二面怎么这么短,能1h?😂
点赞 回复
分享
发布于 2021-03-13 01:38
阅文集团
校招火热招聘中
官网直投
不问项目吗?
点赞 回复
分享
发布于 2021-03-13 10:42
难度有点简单,果然对21届很残酷😭
点赞 回复
分享
发布于 2021-03-13 10:48
我也想面,楼主是怎么投的?
点赞 回复
分享
发布于 2021-03-14 10:58
想问下楼主有写SSM项目在简历里吗
点赞 回复
分享
发布于 2021-03-17 01:16

相关推荐

9 71 评论
分享
牛客网
牛客企业服务