#### **Java程序员百度面试流程**
1. 自我介绍
2. 回答问题————(详情看下面的攻略)
前面会问你很多技术问题,从简单到难,知道问到你打不出来就会又问其他部分的,也是从简单到难,这是通过你回答到那个程度来判断你到达的一个水平,后面会根据这个来决定你能不能入职,还有你的工资大概多少合适。。。
3. 讨论薪资
如果你回答的还不错就是谈工资的时候了,这时候就安全了啊,证明他有意要你,你就可以大胆说出你的期望薪资,就像菜市场的讨价还价,一定要争取到你的理想工资哦
4. 入职福利
后面会有一个可有可无的环节,问你有什么问题要问他的,你可以随便问一些,譬如公司作息时间,平时活动怎么样,节假日有什么福利之类的
5. 签合同
6. 入职时间
#### **额外分享一下去百度上班以后的一些小心得**
1. 来上班那天,给你安排一个位置,一台电脑,可能什么都没有,如果这样,你第一天的任务就是安装各种工具啊。要不然就是把svn上面的代码弄到你的电脑去,熟悉他们项目的业务逻辑,一般有一周到两周时间给你熟悉业务,这段时间不懂得你可以去问项目经理啊
2. 接下来就是陆陆续续叫你做一些小东西,都是些举手之劳,只是让你知道工作的一个流程
3. 慢慢的就开始难了,你会遇到一个大难题,即使对经理来说是很简单的。你会加班到很晚,然后还是做不出来,然后被骂,骂了之后,经理会说,小伙子啊,不要急,你做不出来可以求助大家的啊。。。然后你笑着答应"嗯"
4. 接下来又是些琐事。。。。然后一个很大的难题,琐事,难题,这个过程就是你成长的过程
#### **接下来就是百度Java程序员面试攻略**
**百度一面:**
1. 手写ArrayList
2. 手写进制转换算法,求出一个数的二进制数1的个数
3. JAVA基础 equals和==
4. 多线程方式、threadlocal,各种锁,synchronized和lock
5. 设计模式、spring类加载方式、实例保存在哪、aop ioc、反射机制
6. 类加载器,双亲委派模型,热部署
7. jvm内存模型,内存结构、堆的分代算法、堆的分区、gc算法、gc过程。
8. tcp ip 七层模型 rest接口规范 get和post区别,长度,安全。
9. tcp ip的arp协议,两个同一网络的主机如何获得对方的mac地址。
10. 负载均衡、高并发、高可用的架构
11. mysql的引擎区别
12. redis缓存,redis的集群部署,热备份,主从备份,主从数据库,hash映射找到知道指定节点。
13. 了解云计算么,了解云容器docker么,容器和虚拟机的区别
![image.png](https://static.studygolang.com/190415/37c7e2b560fec310ca4c492094bb7e5e.png)
**百度二面:**
1. 自我介绍 项目中负责哪些 做了哪些
2. 项目中的数据库备份,主从数据库、集群
3. 数据库的索引原理,b+树原理,trie树引申,二叉查找树的原理
4. 海量数据中查找一个单词,分布式计算map reduce ,或者用hsah映射筛选部分结果
5. java的抽象类和接口区别、java的hashmap,java的内存模型,分区,分代垃圾回收算法。实例、常量放在哪里。
6. int 4个字节,double 8个字节。
7. 多线程中的wait和sleep区别,notify的作用
8. 设计模式了解哪些,写一个观察者模式。实现两个接口,一个是主题一个是观察者,并写出对应方法。
9. 写一个生产者消费者队列的方法,分别写两个类代表生产者和消费者,并且用队列模拟其生产消费。用while循环和waitnotify可以实现,但我忘记在队列上加synchronize关键字,于是让我再写一题。写的是:输入一个字符串,输入第一个只出现一次的字符,写出来了。
10. tcp ip的四次挥手 子网掩码的作用, 子网掩码(subnet mask)又叫 网络掩码 、 地址掩码 、子网络遮罩,它是一种用来指明一个IP地址 的哪些位标识的是 主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成 网络地址 和主机地址 两部分。
11. 了解linux么,说一下linux的内核锁?没接触过。
12. 有没有用过sed 使用shell脚本写一个将文本中的字符替换掉的脚本,大概说了一下用grep || 替换。没再问linux的
![image.png](https://static.studygolang.com/190415/3eb06b78fd55d3e54cba420e5b17a46c.png)
**百度三面:**
1. 自我介绍
2. 负责模块,哪些模块,项目一的架构,我说太久了忘了,说最近的项目。
3. 数据库连接池用的是什么,配置文件呢,数据库驱动怎么下载的,持久层框架呢。
4. 为什么要用数据库连接池,有什么好处。
5. java的内存模型,变量和实例存在哪。java栈的作用,java的堆存什么,方法区存什么。
6. java的分代回收。
7. 项目如何部署到云主机上,有什么速度提升,为什么有提升,答主要是设备性能和带宽。
8. tomcat的配置,堆得初始大小是多少,达不知道。
9. 在百度实习的相关事项。
10. 问遇到过什么难题。
11. 问在遇到问题时候的办法。
12. 抗压能力
13. 优缺点
14. 接受加班。
15. 遇到工作问题,同事不配合怎么办。
16. 快速上手工作的办法。
17. 平时学习的方法,举几点。
18. 为什么要换工作,个人,女友。详情。
19. 什么时候能来。
20. 职业规划
#### **总结**
**面试从某种意义上,也可以当做是练兵。你不仅仅是通过一场场面试找到工作,更是通过面试认识自我,所以它也是找到自我的一个过程。**
**针对于上面的面试问到的知识点我总结出了适合于工作2-5年以上开发经验的java程序员在面试中涉及到的绝大部分架构面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。**
**资料领取方式:加Q群:277763288 领取!**
**点击链接加入群聊【Java高并发交流群】**:https://jq.qq.com/?_wv=1027&k=54B0gux
![image.png](https://static.studygolang.com/190415/6d3264aaca3c44b5ebea276734d7f156.png)
有疑问加站长微信联系(非本文作者)