面试日记

岗位:字节java实习 时间 2019/8/21

Q:Java特性有哪些
A:面向对象?GC?虚拟机?

Q:多态是什么
A:可能期待的回答:优点,用来解决什么问题,实现方式

Q:Java重载和重写
A:可能期待的回答:特点与区别

Q:数组和链表
A:可能期待的回答:特点区别,使用场景,还有哪些数据结构是以这两个为基础的

Q:队列和栈
A:同上

Q:数据库索引
A:什么时机建,怎么建,索引原理,B+树

Q:Redis实现原理
A:内存?IO多路复用?单线程?

Q:快速排序,基数排序,归并排序

岗位:牛客-美团2019模拟 时间 2019/9/1

这套题很有意思,大多是思维题,代码都不长,不过难度不小
1:图的遍历
想象为以1为根的树,其中深度最深的一条路径只用走一次,其余所有路径都需要走两次,所以答案=(n-1)*2 - maxlen

2:最长全1串
滑动窗口思想,两个指针,右边指针往右移,遇到1直接移,遇到0,k--,k不够用的时候左指针往右移

3:外卖满减
dp

4:种花
思路很有意思,有点像刷栅栏的题,详细看这篇博客https://blog.csdn.net/weixin_42564710/article/details/97646339

5:考试策略
dp

6:路由器
差分数组

7:D塔2
模拟

岗位:美团后台开发一面 时间 2019/9/6 (2小时)

1:集合,从接口的角度讲讲

2:集合中的线程安全类有哪些,都是如何实现的

3:都有哪些线程池,分别有哪些作用,线程池有哪些参数

4:如果让你实现一个Tomcat,都需要实现哪几方面,深入聊一个方向

5:mysql讲一个你了解的方面

6:mysql优化流程

7:mysql连表查询和分开两次查询在合并,有什么不同
从连接池,mysql优化方面答

8:状态码

9:linux命令

10:项目,给一个场景让理技术和业务上的逻辑

岗位 小米 java开发 一面 2019.9.19 (40分钟)

Q: 接口和抽象类的区别
A:
接口可以多继承,抽象类不能实现多继承。
接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
接口被用于常用的功能,便于日后维护和添加删除,而抽象类更倾向于充当公共类的角色,不适用于日后重新对里面的代码修改。功能需要累积时用抽象类,不需要累积时用接口。

Q: 数据库两种引擎区别

Q: 缓存击穿 布隆过滤器

Q: jsonp 跨域

Q: session和cookies ,禁用cookies怎么办 sessionID

Q: 线程 进程 协程
协程是一种用户态的轻量级线程,java目前原生还不支持

Q: 死锁

手写代码巨简单,面试官超好,自认为状态特别不好,还是给过了

岗位 去哪儿Java实习 2019.10.11(30分钟)

Q:常用排序算法
Q:分析快排 冒泡 归并 堆排的时间复杂度
Q:线程状态
Q:介绍下守护线程,以及和其他线程比较
Q:Redis如何实现单线程的
redis 内部使用文件事件处理器 file event handler,这个文件事件处理器是单线程的,所以 redis 才叫做单线程的模型。它采用 IO 多路复用机制同时监听多个 socket,根据 socket 上的事件来选择对应的事件处理器进行处理。
Q:Redis如何控制超买超卖
Q:Redis中常用数据结构
Q:SET集合底层是如何实现的,ZSET如何实现
Q:七层网络协议,常用协议在哪一层
Q:HTTP使用传输层中的哪一种协议
手写代码
两个链表判交叉
写了常规的两种方法
想到了判环,没写出来..

posted @ 2019-08-21 17:48  feifei97  阅读(297)  评论(0编辑  收藏  举报