一面(7.16)
1.自我介绍
2.项目
3.讲一讲java中你最熟悉的数据结构(感觉面试官是搞c++的,我就挑了一个hashmap讲了一下)
4.synchronized原理
5.linux按下ctrl+c为什么会结束当前进程(不会)
6.游览器输入bytedance的流程
7.http协议讲一下(讲到了http request和http response报文,面试官继续问http头部有哪些字段,讲一下作用)
8.select id,name from user where age>10 order by id desc limit 0,10怎么建立索引(最开始sql语句limit是用offerset写的,我说我平时用的是,面试官还把他改成了我熟悉的形式🤣。当中还扯到了sql语句的执行顺序,这个语句会扫描多少数据)
9.算法:两个有序数字求中位数(我只给出了时间复杂度为O(m+n)的解法,但是面试官不满意说还可以优化,想了半天感觉用二分查找,但是写不出来😅,最后面试官就要我写了个归并的方法)
二面(7.17)
1.自我介绍
2.项目
3.ReentrankLock原理(我讲个一下AQS,还有公平锁和非公平锁,面试官还问公平锁效率高还是非公平锁效率高,为什么)
4.ReentrankLock底层用了哪些jvm有关的操作(我讲了一下volatile)
5.如果ReentrankLock中存在一个非volatile的属性,线程一访问后释放锁,线程二去获取,是否保持可见性(有点蒙蔽,但是顺着面试官的意思讲,我就答保持可见性,然后乱扯了一下,蒙混过关😅)
6.类加载机制(不断的深挖,中间还问到了mysql的Driver如何破坏双亲委派机制的,类加载器的命名空间)
7.spring有哪些设计模式(讲了单例,动态代理,工厂)
8.NoSuchMethod这个错误会在什么时候出现
9.如何让堆,栈溢出
10.如果系统cpu飙升,如何排查(中间还扯到死锁,也把死锁讲了一下)
11.synchronized和volatile的区别
12.算法:解析字符串。栗子:3[a2[c]]=>accaccacc
三面(7.20)
1.自我介绍
2.线程的状态
3.notify和notifyAll的区别
4.如果一个线程死亡了,怎么让它再次运行(不会)
5.线程池参数
6.io密集型和cpu密集型,线程池参数怎么设置
7.mysql隔离级别,脏读,不可重复读,幻读如何解决
8.二级索引
9.回表,覆盖索引讲一下
10.explain
11.聚簇索引和非聚簇索引
12.http状态码
13.项目
14.es对于其他搜索引擎有什么优势
15.es插入一条数据的流程
16.算法:在数组中找出连续位置数值之和大于x,但是使长度最小。
全部评论
(7) 回帖