有赞云面试
面试过程非常的舒服,对面试官小哥哥很满意,点赞,对自己面试不满意,点踩并写面经惩罚
本来以为秋招结束了,国庆开始就没看过八股跟面经,基本都忘得差不多了,兄弟们一定要引以为戒,坚持充电,说不准就出现一次机会看你能不能抓住
面了大概一个小时,有些问题记不全了,大概记录一下。有一些问题我大概说一下我的回答 。
开局自我介绍
java基础
hashmap的数据结构你了解吗? 1.7的数组加链表 1.8的数组加链表/红黑树
hashmap1.7跟1.8的区别? 巴拉巴拉
为什么选择红黑树? 巴拉巴拉
如果没有红黑树跟链表会怎么样? 哈希冲突
你知道其他的解决办法吗? 开放地址法
还有其他的吗? 不知道
hashmap的容量特点? 会选取最近的最大的2的幂次
为什么是2的幂次? 方便进行位运算,具体可以在扩容时体现,只需判断最高位是否是0/1来直接确定扩容后的位置
刚才你说1.8使用了尾插法,为什么使用尾插法? 因为头插法在扩容时会把链表倒转,如果在并发的情况下,多个线程进行扩容操作,容易形成死循环
为什么会形成死循环? 这点我没答出来核心
你说的尾插法可以解决hashmap的并发扩容,这样我们可以在多线程的情况下使用hashmap吗? java并不推荐我们在多线程的情景使用hashmap,他推荐我们使用concurrenthashmap,我所说的只是解决了多线程情景下的扩容操作,实际上扩容操作后面会紧跟着其他操作,这些其他操作会导致一些线程安全问题。
concurrenthashmap的数据结构
分段锁的并发处理
cas
cas的缺点
不使用现成的工具类跟本地方法,你能实现cas吗?
对于锁的分类,从实现原理分类,分为哪几种? syn,cas,aqs
简单说一下syn关键字跟aqs
aqs的实现原理
说一下你常用的aqs类型的锁
读写锁的原理你了解吗
共享锁跟排他锁在aqs的实现过程
state的状态
JVM
jvm的内存模型
垃圾回收算法
怎么确定垃圾可回收?
GCRoot是那些? 这个给忘了,导致jvm话题终结
Redis
redis为什么快?
redis的工作原理
如何解决缓存雪崩跟缓存穿透?
其他
RabbitMQ跟kfk的区别
kfk的优缺点
cap理论
从cap分析四种注册中心
Eurake的服务发现原理 我在这卡住了。。。应该好歹说说如何使用,然后引到后面的服务熔断什么的
spring的特点?
什么是ioc? 我一开始听成了aop,说完了面试官说问的ioc,很尴尬
spring跟springboot的区别?
springboot的自动装配原理? 这个原理我给忘了,很羞愧
反问环节 我问了两个问题 :有赞云的业务,对我的评价
对我的评价很中肯,java基础了解的一般但没有真正的深入理解,场景问题的思考较少,jvm知识储备不够,微服务这块给他感觉我不太了解的样子,让他感觉没啥可问的(主要我不会拓展话题,感觉当时应该引到服务熔断那一块),中间件的了解也不是很好,框架的了解也是浅层次,不过这个也不是很重要。
总结,面试两个亮点:基础很扎实,技术广泛还熟练。
我基础一般,技术好像刚了解。。。。留下了国庆悔恨的泪水
晚上收到了人才储备通知,不得不说流程还是很快的。重新刷面经,慢慢来把
查看17道真题和解析