面试公司:华欧汇智(北京)科技有限公司
面试岗位:Java开发面试难度:较难面试结果:未通过
面试内容:1.讲一讲hash表 2.hash冲突了怎么办?(拉链)除了拉链还有吗?(开放地址法,不是很了解,听过) 3.如果使用hash进行分布式存储有什么弊端?(可扩展性不强,例如增加节点和节点宕机的情况) 4.如何解决?(一致性hash,提到了redis的哈希槽)讲一讲吧 5.一致性hash会出现什么问题?(数据倾斜问题)如何解决?(虚拟节点) 6.介绍JVM(五大部分) 7.什么时候会GC?(答GC过程)你说的MajorGC和fullGC有什么区别? 8.FullGC会有什么问题吗?(STW)什么时候会STW(介绍CMS大致过程,在标记的时候) 9.TCP和UDP区别 10.你知道什么时候TCP会发送rset报文吗?(不知道) 11.hashMap介绍一下 12.hashMap是线程安全的吗?(不是)如何保证线程安全?(答concurrtenHashMap)让你自己来实现呢?(使用sy加锁)怎么加锁(锁住put和get方法)具体一点(sy分为类锁和对象锁)那你觉得应该加什么锁(对象锁,解释一下) 13.concurrtenHashMap介绍一下(主动说的) 14.CAS讲一讲 15.sy和lock的区别 16.CAS,sy,lock三者应该分别在什么场景下使用?(这个回答的不是很好,我说要看业务需求,三个偏向特点不同,简单介绍三者不同的倾向特点) 17.内存泄露是什么?什么时候会出现内存泄露?(静态常量不使用,threadLocal)还有吗?



