腾讯pcg+阿里钉钉面基分享
腾讯pcg:
-
集合concurrentHashmap:是否有加锁;可重入锁和非可重入锁的区别(死锁)
-
git多版本控制,又没有遇到冲突,怎么解决的,rebase和merge的区别;
-
线上遇到问题,linux如何解决;
-
redis设置的过期时间,是怎么清除的(主动+被动清除);哪几种数据类型;数据结构有哪些?
-
mysql有哪几种隔离级别;脏读,不可重复度,可重复度和幻读,都是如何解决的;如何解决幻读?介绍下mysql的锁
-
spring的bean是怎么注入的,IOC,DI等如何实现的,除了反射还有什么机制?
-
spring的事务用过吗?加锁是什么操作?
-
spring如何解决循环依赖的?
-
jvm分为哪几个区域,新生代和老年代都用的什么方式分配的(指针碰撞和空闲列表);JVM内存模型
-
对象的创建方式有哪些,介绍下直接指针和空闲列表;介绍下内存区域、元空间等
-
java的集合和锁、并发。Reenlock和synchronize的区别,可重入锁如何实现?公平和非公平的区别;
-
arraylist和list的区别?
-
hashmap是如何扩容的,与运算提高效率;
-
项目相关(略过):项目里面是面向服务的还是面向入口的?除了影子库的方式还有什么方式处理吗?录制回放;如何实现全链路的?mock?
-
线程池的几个参数,核心线程数的作用,什么时候才会创建?
-
使用构造方法创建的线程池,默认的队列个数是多少?
-
grpc和dubbo的区别?
二面(0.5h):
-
http2.0和1.0的区别?缓存?长连接?
-
http的header有哪些?
-
(项目相关)项目中都做了什么?挨个问项目
-
(项目相关)协议适配的话,grpc和dubbo的区别?
-
(项目相关)一个房间有多大的请求?如何判断是否达到了峰值?获得了哪些参数?
-
(项目相关)项目中使用了什么技术?多线程,存储redis和mysql,mongo的区别?
三面(1h):
-
负载均衡如何实现;
-
服务治理如何实现?熔断降级,限流。
-
hashmap、concurrentHashMap,lock和synchronized的区别?
-
(项目相关)影子库方案?
-
如何学习的?书籍、博客、哪些书籍、w3c、代码规范
-
脑筋急转弯:50%喜欢篮球,60%喜欢排球,70%喜欢羽毛球,喜欢篮球且喜欢排球占多少?
-
缓存穿透如何解决?布隆选择器介绍下
-
DNS的递归和动态规划的区别?
-
如何实现负载均衡?
-
三次握手如果最后一次没有成功的话,服务端会怎么处理?除了过期时间还有什么?不安全
2.为什么选择腾讯?
3.你在学校的经历?
4.你的爱好?
5.上一份实习经历带给你的东西
6.你能给这个团队做什么
7.你相比较其他人,你的优势
8.你相比较其他人,你的劣势,你需要改进的点
9.投其他几个公司,相比腾讯你觉得之间的不同
10.评价一下你之前的面试官,挨个说。
11.你的实习时间多久?
12.说一下你面试过程中最深的一个技术点,你回答的很好的一个
13.你选择的工作城市,是否投递了其他公司,现在的状态
14.是否单身,你眼中的腾讯
15.用一句话评价你可以得到这份岗位的原因
阿里钉钉:
一面(1h)
-
介绍下项目,挨个介绍,做了什么,难点是什么?对哪一领域比较感兴趣,项目的细节;
-
介绍下分布式锁实现方式有哪些,setnx存在的问题
-
jvm新的垃圾回收算法,除了标记清除,复制,标记整理,分代整理之外还有哪些
-
分布式如何获取唯一ID
-
jvm gc的了解,让你自己介绍,然后问的很细
-
threadLocal的key和value分别是什么?
-
代码:层次打印树
二面(1h):
1、各种优化(加入让你写的是API,考虑各种边界值)
// atoi("1000", 10) == 1000 // atoi("A", 12) == 10 // atoi("10", 4) == 4
2、智力题
数据源:1 1 2 2 3 3 4 4