欢聚集团一面(JAVA开发工程师)
1、笔试题目讲解。(面试官挑了两道自己当时做错的题目)
2、常规知识考察
(1)Arraylist它动态扩容的底层原理(这个我不记得了,还答成了hashmap,尴尬,正确应该是说初始长度为10,元素数量超过容量时,新建数组再拷贝原数组元素,至于新建数组的容量多少,印象是1.5倍)
(2)Arraylist扩容后,当数组中元素去除很多后,它的容量会变小吗?(这个我答得稀里糊涂的,又记成了hashmap的红黑树,就答了会,实际上动态数组的动态好像只限于增长,没有缩小的说法)
(3)hashmap的扩容因子为什么默认设定为0.75而不是其他的?(事后百度解释为假如因子为1,那空间利用率上去了,时间却下来了,因为要填满数组的位置,才扩容,而0.5的话,扩容就太快了,本身0.5的时候冲突就比0.75小,还扩容,就浪费空间了,总结就是0.75是空间和时间都兼顾的表现,有人测过0.75为最好的,对比0.7和0.8)
(4)volitile的原理?(保证了可见性,使用volatile会给每个线程都提供一个副本,一个线f程对volatile修饰的变量变化,会让主内存的变量先变化,然后主内存的变量再更新其他线程的变量值,实现变化)
还有的问题不记得了
3、项目考察
(1)先自己介绍。
(2)项目中遇到的难点,然后自己的后面怎么解决的。
(3)自己在项目中做了什么,起到什么作用。
(4)redis做消息队列对比市面常见的消息队列的不好的地方?
项目这个聊的是实习项目,感觉聊的有点啰嗦。
整体感觉要凉的节奏(最后反问面试官对本次面试的评价feel到)
#欢聚集团##面经##java工程师#