百度最新面经-Java 工程师


百度最新面经-Java  工程师
一、
百度一面:60  分钟
1、基础模块
java  中  Object  类有哪些方法,分别在什么场景下使用,== equals()的异同
java  基础类型与所占的长度
hash  的时间复杂度
String  不可变性与  Stringbuild Stringbuffer  的使用
set  和  list  的区别,你是如何选择的
基本类抽象类接口的异同
设计模式,如何使用的,讲了一下我对设计模式的理解
2、数据库模块
mysql  的使用
聚簇索引,非聚簇索引,回表
联合索引,最左匹配原则,联合索引不回表的情况
多表联查强制使用某一个索引
mysql  事务隔离级别,如何选定
缓存数据库  memcache  的集群模式,一致性  hash 
redis  的基本数据类型
3、网络模块
一个  url  请求的过程
http502 406 302  的意义
三次握手 四次挥手
4、vi  编辑器  nginx linux  命令
vi  编辑器的两种模式,跳转到最后一行
nginx  的模块化,break continu  的区别,
linux  查看大文件,查看负载命令
5、项目
介绍了我在京东做的项目的一些优化思路,设计思路
百度二面:30  分钟 1、java  基础
java  并发包的一些问题,队列,线程池的设计,为什么这么设计
gc  的模式,算法,内存模型等
类加载,自己实现类加载 问的都比较实用,如果不是自己操作过,基本上不好回答
2、数据库
主从复制  mvcc  原理 索引类型
redis  持久化 这块问的比较多,记不清了
3、框架
spring  框架的使用,使用了哪些注解
spring  如何如何解决他们的  bean  循环依赖的(这个忘了,三级缓存)
springmvc  请求流程
还有一些也记不清了,没问我的项目
一面结束就通知我第二天二面,但是二面感觉还行,有两个问题没回答好,其他觉得
都不错,时间只有  30  分钟,不知道时间这么短 是什么意思,希望这次能过吧。
二、
电话面试,面试官说话憨憨的哈哈哈哈(褒义词,很逗)
45min  1.自我介绍 2.介绍一下项目(15min) 3.设计题:用户关注和粉丝功能:(一,关注 二,取消关注 三,查看关注列表
和粉丝列表)10min 
4.JAVA  基础  10min  4.算法题(挺简单两道): 1.查找两链表公共节点(记着答案直接说了) 2.有序列表,每一位都平方后去重后的个数
:例【-1,1,2,3】——>【1,4,9】 3  个数
第一反应哈希表,但空间复杂度有点高了,然后想了一会用头尾双指针往  0  逼近,找
绝对值相等的个数
5min  后  hr  来电话约晚上二面,希望有好运气哈
三、自我介绍
http  常用的代码
502  和  504  区别
mysql  索引
mysql  的  ACID 
InnoDB  和  MyISAM  的区别
乐观锁悲观锁
HTTP  的特点
mysql  事务隔离级别及其作用
mysql  的主从同步
Java  的基本数据类型和占用字节
最左匹配原则
nginx  了解么
redis  的同步
redis  数据淘汰
RDB  和  AOF  的优缺点
AOF  是阻塞的么
分片数据会丢失么
一致性哈希算法
String  可以被继承么
final  的作用
阻塞队列
IO  模型和它们的使用场景 有几种  buffer 
都会什么数据结构
分布式同步
平常用过什么设计模式?
OSI  模型第  4  层和第  7  层的区别,有什么协议
干过什么项目 项目用了什么框架 有没有分布式 大数据的经验
git  如何使用
常用  linux  命令
如何查看进程
awk 
压缩包的命令是什么
使用过  memcache  么
都使用什么操作系统
mybatis  和  jdbc  的区别除了  Java  还用什么语言
大数据了解么
前端了解么
分布式了解么
项目的并发量是多少
有用什么框架么
上述问题由于没有经验所以都不会。。
算法
跳格子一次  2  到  3  格
excel  表格 第几行的行号是多少  1-26  行  abc…z  然后是  aa ab ac…az  以此类推
四、
百度凤巢  Java  开发一面
面试时间大约一个小时
问项目、实习
hashmap jdk7  和  8  的区别,链表长度大于  8  转成红黑树,put  源码,和  hashtable  区  

hashset  实现
concurrenthashmap  原理  7  和  8  的区别,深问细节
Java  内存模型,解释下各分区,A a = new A();a  存在哪(区分成员变量个局部变量)
垃圾回收算法,详细说分带算法,可作为  roots gc  的对象
类加载过程,双亲委派原则
线程状态
wait  和  sleep  啥区别
线程池,各种细节,参数,原理,阻塞队列,拒绝策略
三个线程  ABC,怎样保证顺序执行(我说了  join,信号量,最后让我用锁实现下)
synchronized  和  lock  啥区别,原理,公平锁与非公平如何实现(说到  AQS)
synchronized  锁升级
volatile  作用,实现原理
cas  原理,cas  产生的问题(ABA,占用  cpu)
索引有几种,聚簇和非聚簇,回表操作
索引失效情况
如何优化  mysql 
mysql  存储引擎,区别索引用什么数据结构,为什么用  b+ 
事务特性
隔离级别
脏读,不可重复读,幻读,解释
mvcc  是啥,如何实现的?
redis  数据类型
redis  持久化方式,原理,效率,区别
AOF  持久化是否包含查指令
spring  说几个注解
ioc  和  aop  原理及解释
动态代理,jdk  代理和  cglib  代理区别,实现
spring  事务
tcp  三次握手,为什么,两次有什么问题
https  请求过程
最后说电面就不问算法了,最近会再联系你,等二面了再来更
五、
技术一面
时间:40m;
形式:现场;
自我介绍;
问题:
Thread;
equals  和  hashCode  等;
volatile;
JMM;
垃圾回收,分代等;
synchronized;
单例模式;
ThreadLocal;
jvm  栈空间分配;
TCP/IP  五层模型;
各层常见协议;
HTTP  的报文结构;
HTTP  和  HTTPS;常见的  HTTP  头;
数据库隔离级别等;
快排特点等;
堆排怎么找左子节点;
Linux  分割文本的问题;
cookie  和  session;
简单难度的算法题,LeetCode  有原题;
上面那个题怎么优化空间复杂度;
反问:
部门问题;
主要技术栈;
是否会存在调岗;
后续面试安排;
技术二面
时间:40m;
形式:现场;
自我介绍;
问题:
简单或者中等的算法题,LeetCode  有原题;
口述算法题,10  亿个无排序数取最大的  1000  个;
阻塞队列;
Java  接口抽象类;
线程池;
ThreadLocal;
手写两句  sql  题;
Spring Boot;
MySQL  两个引擎;
优化数据库;
Spring  配置数据库驱动,参数类型等;
Linux、Docker、Nginx  的几个问题,答的不好;
Redis  单线程等;
前端的一个问题,并没有复习;
反问:
为什么会问前端问题(因为简历写了,但我没复习,尴尬);
对我的建议;
后续流程;百度技术栈以及对应届生哪方面比较重视;
主管面
时间:44m;
形式:现场;
主要问学科发展,项目,设计理念,方法论等较上层面的问题;
最后聊了下程序员人生发展的问题等,整体还是挺愉快的。


文章作者:   future
版权声明:   本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 future !
  目录