有赞云面试
面试过程非常的舒服,对面试官小哥哥很满意,点赞,对自己面试不满意,点踩并写面经惩罚
本来以为秋招结束了,国庆开始就没看过八股跟面经,基本都忘得差不多了,兄弟们一定要引以为戒,坚持充电,说不准就出现一次机会看你能不能抓住
面了大概一个小时,有些问题记不全了,大概记录一下。有一些问题我大概说一下我的回答
。
开局自我介绍
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知识储备不够,微服务这块给他感觉我不太了解的样子,让他感觉没啥可问的(主要我不会拓展话题,感觉当时应该引到服务熔断那一块),中间件的了解也不是很好,框架的了解也是浅层次,不过这个也不是很重要。
总结,面试两个亮点:基础很扎实,技术广泛还熟练。
我基础一般,技术好像刚了解。。。。留下了国庆悔恨的泪水
晚上收到了人才储备通知,不得不说流程还是很快的。重新刷面经,慢慢来把
#面经##有赞##校招#