字节抖音开发后台1面
我从来也没报字节跳动,我也不知道我的简历怎么被hr给从人才库捞到的,而且现在我看也没hc了,估计拿我刷个kpi吧.
#面经##字节跳动##Java工程师##校招#
自我介绍,讲简历,聊到了spring框架几个常用注解,aop的底层逻辑实现, thymeleaf的使用方法,简历问答结束,15分钟不到
问了多线程
线程池的三大实现方法,四大拒绝策略,拒绝策略的底层实现,由此问到了阻塞队列的4大api。
问我怎么用基础方式创建线程,我说继承thread类,实现runnable,callable接口,他反问那考虑到代码耦合性呢?可以这么创建线程吗?一开始没理解他说啥,后来他暗示了一下,我答不行,应该创建普通类然后使用new thread().start()来实现,由此深入问到了lambda表达式怎么使用,四大函数接口的实现.
用过什么线程通信方法,都怎么用的?我只用过加减计数器跟信号量三个类。反正我只要说到点新的东西,他就一直能问下去.
然后问我java可以开启线程吗,不行,因为底层使用的是native cpp方法.
还看过什么代码?
堆栈的区别,jmm是什么?volatile的三大特点是什么?在不是用synchronized跟lock的情况下如何如如何保持原子性?使用原子类,那原子类的cas解释一下,aba问题怎么解决?自旋锁用过吗?我就把getandincrement那个函数说了。
数据库用过mysql吗?b跟b+的区别,innodb的默认底层什么实现的,为什么不用红黑树实现呢?什么是事物?幻读是什么?事务中的U,X锁用法,有哪些索引,怎么创建的?自增主键的底层怎么实现的?
还问了数据结构,
各种sort的复杂度
collection的实现四大类list,set,map,queue的使用场景区别,set的底层实现是什么-是map,那map的底层实现呢?list+红黑树。
当你有一个数组,找一个目标数字,怎么找?
我说如果是递增或递减用二分,不是的话on跑一边. 他反问还有更好的选择吗吗,可以用map记录但这样空间复杂度变成on了
http跟https的区别,打开一个网站的时候会发生啥?如果某个网址并没有在阿里云这些地方购买权限你能访问吗,可以,需要在自己的电脑里改个sdn文件权限。
刷过多少题?300多吧,做过树吗,我说我不喜欢做递归的题目,那给你出一道字符串吧
一个字符串求最长回文子串,其中还有其他要求比如回文子串是需要满足在ascii码先增后减少并且连续比如abcba。经典题目我说用dp跟普通的检查没个字符并且两边扩散的n2两种方法,他说那一次遍历on呢?他暗示了我,但是我觉得他在瞎说,没做出来。我会用的dp跟两个for的遍历全给他砍掉了,他说我陷入了逻辑漩涡所以没理解他说的on算法。
最后还是给我换个道树的题,求sum和的ez题,估计认为我太菜了,所以做个简单的吧。
反问环节,有啥想问他的?
并没有问我要不要马上继续下一轮面试就结束了一共1小时15分钟
反正也是kpi,心累