度娘不死,百度仍在!百度社招一二三面
百度一面
JAVA基础
Hashmap底层、是否线程安全、在高并发的情况下会出现什么问题?
如何让hashmap安全?
Concurrenthashmap的底层实现
反射是什么?
Hashmap的put时key应该注意什么(hashcode和equals)
线程
线程的实现方式
线程池的参数
线程的抛弃策略
线程中的工作队列是否有界
线程池的实现流程
Volatile的作用
详细说一下happens-before
ReetrantLock和sychronized的区别
Sychronized的锁(偏向锁----自旋锁----重量级锁)
CAS出现的问题,如何解决
JVM
介绍一下什么是JMM?
JAVA创建对象的过程?对象头中包含什么?
JVM的内存区域?虚拟机栈中存着什么?
垃圾回收的算法?
GC roots可以是哪些对象
详细说一下双亲委派机制?
能不能打破双亲委派机制?(自己重写classload方法,或者将查找parent设为null)
类加载器有哪些?
加载后的类信息存在哪个区域?
说一下对象锁和类锁?
Spring
说说Spring AOP的实现
Spring中用到了那些设计模式
Spring中Bean对象的生成过程
Mysql
数据库引擎有哪些?他们之间的区别
MySQL的索引有哪些?
什么是MVCC?
发现慢查询以后如何做?
Explain中的关键字有哪些?(id、table、type、key、rows)
Hbase和MySQL的区别?
MySQL保证原子性?(使用undo log实现原子一致性,当事务回滚时,可以通过undo log进行回滚,如果inert,此时需要delete;他记录了回滚需要的信息)
Zookeeper
说一说Zookeeper(文件配置、集群管理、分布式锁、队列管理)(监听机制:ZooKeeper的Watcher机制主要包括客户端线程、客户端WatcherManager、Zookeeper 服务器三部分。客户端在向ZooKeeper服务器注册的同时,会将Watcher对象存储在客户端的WatcherManager当中。当ZooKeeper服务器触发Watcher事件后,会向客户端发送通知,客户端线程从WatcherManager中取出对应的Watcher对象来执行回调逻辑)选举机制:半数机制
Zookeeper的心跳机制
了解负载均衡吗?
百度二面(重点通过项目展开问题)
大文件数据上传这个有没有什么改进?(多线程上传、value的静态内部类是否可以用枚举、boolean是否可以用位存储)
多线程的优势和缺点?(优点:高并发、多核CPU上利用上下文切换资源少)(缺点:资源少的情况下出现死锁、缓存一致性、指令重排)
你觉得CPU上可能出现指令重排吗?
如果你说的这个是多线程上下文切换资源少的话,用进程不可以吗?交换数据使用共享内存
假设有4个CPU,每个CPU上有一个进程,进程之间使用共享内存?你觉得不用线程是不是可以?像ngnix
为什么多线程过程中是有缓存一致性?(工作内存和共享主存)
Volatile 如何保证内存可见性?
工作内存和共享内存存在哪里?
那如果存在栈中就不应该有缓存一致性呀?
MESI协议中有几级缓存?缓存中哪一级是私有的,哪一级是共有的?那缓存存在哪里?
如何会产生死锁?
那你会写一个死锁吗?
写完以后你这个为什么不报错呢?
打开快照,问你是否能看懂?为什么不报错?
百度三面
介绍一些并发项目
技术含量较高的项目,从架构设计到部署问了一遍
高并发架构的设计思路
获取往期以上更多最新面试题资料,直接转发一下这篇文章+关注公众号【Java烂猪皮】关注后回复【666】即可获取哦~
腾讯、阿里、滴滴后台面试题汇总总结 — (含答案)
面试:史上最全多线程面试题 !
最新阿里内推Java后端面试题
JVM难学?那是因为你没认真看完这篇文章
关注作者微信公众号 —《JAVA烂猪皮》
了解更多java后端架构知识以及最新面试宝典
看完本文记得给作者点赞+在看哦~~~大家的支持,是作者源源不断出文的动力