字节跳动暑假实习一面面经
本来是想投后端开发的,但是意外的被测试开发岗的HR捞了起来,让我去面试一下。
虽然结果没出,但是我感觉是凉了。
一分钟自我介绍,直接开始问问题,没有提及项目。
一、多线程与并发:
1、synchronized和RentLock的区别?
2、Java里面有哪些锁?
3、说一下CountDownLatch
4、说一下ThreadLocal
5、说一下Java中常见的线程池?
答:我只知道线程池中的一些参数。
面试官:好,那你说一下。
答:核心线程数,线程池中最大线程数,阻塞队列,拒接策略。(keepAliveTime、TimeUnit、threadFactory没答出来)
面试官:拒绝策略有哪些?(疯狂问)
面试官:线程池最大线程数和核心线程数是怎样的一个关系。数量
二、Java集合:
1、Java集合有哪些?
2、说一下ArrayList和LinkedList的底层实现
3、HashMap的初始容量是多少?
4、HashMap是如何扩容的?
5、HashMap中链表的长度大于8要变成红黑树,为什么红黑树节点小于6退回链表?
为什么是8和6?(答:跟查询效率有关。面试官:肯定是跟查询效率有关,为什么是6和8)
三、网络:
1、说一下HTTPS中SSL加密的过程?
四、操作系统:
1、说一下select、poll、epoll的区别?
五、MySQL:
1、MySQL四个隔离级别?
2、MySQL默认隔离级别是哪个?
3、不可重复读是如何保证的?
4、MVCC是什么?
六、Spring:
1、service类是单例还是多例?
2、当serviceA调用serviceB,serviceB调用serviceC,serviceC调用serviceA时。
有循环调用时,spring创建service类是怎样的一个顺序。
七、算法题:
开心消消乐:字符串中相同的三个字母消掉。
例子:"ccbaaabbcd" ==> "d"
八、反问环节:
答:你能给我提一点学习意见吗?
面试官:建议你多看看java高级部分。