这就是大厂 百度Java面经1. 自我介绍加项目介绍2. 简历上看到你做过项目组长,你在做组长之后做了那些工作。学到了那些东西。3. 有看过HashMap源码吗?4. JDK1.7中HashMap的put()方法全过程。5. JDK1.8有那些变化。6. JDK1.7当中HashMap中线程不安全问题有那些?原因分别是什么?7. JDK1.8之后如何链地址法,链表长度是多少的时候会转换成红黑树。8. 节点个数是多少的时候,红黑树会退回链表。9. 为什么会选择8作为链表转红黑树的阈值。10. HashMap与HashTable有什么区别?11. 有没有了解过ConcurrentHashMap?12. JDK1.8之后ConcurrentHashMap如何保证线程安全性?(CAS+synchronized),这里还顺便问了synchronized和可重入锁的区别。13. 与JDK1.7相比有那些优化?14. 说到synchronized,说些synchronized加载static关键字前和普通方法前的区别?15. 看你熟悉单例,说下单例懒汉式和饿汉式的区别?(手写)16. 懒汉式下如何保证线程安全?17. 创建线程安全的单例有那些实现方法?18. 说一下JVM的内存模型?(每一个模块都说)19. 熟不熟悉垃圾回收算法?20. 如何判定一个对象是否应该回收。21. 除了垃圾回收,还有那些工作会造成CPU负载过高(其实这里给出的是一个场景,就是让描述一下除了垃圾回收之外,还有那些工作会让线上CPU占用到百分之90-100,并且给出排查过程。)。22. 说一下CMS垃圾回收器和G1收集器的特点,和收集过程。23. String a = “abc”;和String b = new String(“abc”);是不是一样的?为什么?他们对应的内存空间分别是什么?24. 说一下JVM创建对象的过程。25. 说一下byte a = 127; byte b = 127; a+=b和a = a+b的区别分别会出现什么问题。26. 是否熟悉mysql?说一下mysql的隔离级别和对应的问题。27. 什么是MVCC,主要是为了做什么?28. 我们的数据库当中如何做的优化?举案例。29. 说一下mybaits和hibernate的区别,为什么用hibiernate。30. Hibernate状态的转换关系。31. 说一下Spring的IOC和AOP在项目里是怎么用的。32. AOP的两种实现方式,并且说一下哪一个效率更高一些,为什么。33. 说一些Spring的事务传播机制。34. 有哪些问题可以问?
面试感受:一般;面试难度:有难度;面试来源:内部推荐