一位高级Java程序员百度offer的三面经历,分享给迷茫的你

249 阅读4分钟

百度java程序员一面:

手写ArrayList 手写进制转换算法,求出一个数的二进制数1的个数 JAVA基础 equals和== 多线程方式、threadlocal,各种锁,synchronized和lock 设计模式、spring类加载方式、实例保存在哪、aop ioc、反射机制 类加载器,双亲委派模型,热部署 jvm内存模型,内存结构、堆的分代算法、堆的分区、gc算法、gc过程。 tcp ip 七层模型 rest接口规范 get和post区别,长度,安全。 tcp ip的arp协议,两个同一网络的主机如何获得对方的mac地址。 负载均衡、高并发、高可用的架构 mysql的引擎区别 redis缓存,redis的集群部署,热备份,主从备份,主从数据库,hash映射找到知道指定节点。 了解云计算么,了解云容器docker么,容器和虚拟机的区别。 百度java程序员二面:

自我介绍 项目中负责哪些 做了哪些 项目中的数据库备份,主从数据库、集群 数据库的索引原理,b+树原理,trie树引申,二叉查找树的原理 海量数据中查找一个单词,分布式计算map reduce ,或者用hsah映射筛选部分结果 java的抽象类和接口区别、java的hashmap,java的内存模型,分区,分代垃圾回收算法。实例、常量放在哪里。 int 4个字节,double 8个字节。 多线程中的wait和sleep区别,notify的作用 设计模式了解哪些,写一个观察者模式。实现两个接口,一个是主题一个是观察者,并写出对应方法。 写一个生产者消费者队列的方法,分别写两个类代表生产者和消费者,并且用队列模拟其生产消费。用while循环和wait notify可以实现,但我忘记在队列上加synchronize关键字,于是让我再写一题。写的是:输入一个字符串,输入第一个只出现一次的字符,写出来了。 tcp ip的四次挥手 子网掩码的作用, 子网掩码(subnet mask)又叫 网络掩码 、 地址掩码 、子网络遮罩,它是一种用来指明一个 IP地址 的哪些位标识的是 主机 所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成 网络地址 和 主机地址 两部分。 了解linux么,说一下linux的内核锁?没接触过。 有没有用过sed 使用shell脚本写一个将文本中的字符替换掉的脚本,大概说了一下用grep || 替换。没再问linux的 百度三面:

自我介绍 负责模块,哪些模块,项目一的架构,我说太久了忘了,说最近的项目。 数据库连接池用的是什么,配置文件呢,数据库驱动怎么下载的,持久层框架呢。 为什么要用数据库连接池,有什么好处。 java的内存模型,变量和实例存在哪。java栈的作用,java的堆存什么,方法区存什么。 java的分代回收。 项目如何部署到云主机上,有什么速度提升,为什么有提升,答主要是设备性能和带宽。 tomcat的配置,堆得初始大小是多少,达不知道。 在网易实习的相关事项。 问遇到过什么难题。 问台湾交流经历,学习内容。 问在遇到问题时候的办法。 抗压能力 优缺点 接受加班。 遇到工作问题,同事不配合怎么办。 快速上手工作的办法。 平时学习的方法,举几点。 为什么要换工作,个人,女友。详情。 什么时候能来。 职业规划 在网上经常看到一些别的朋友有提出项目经验的问题,依照我面试的感觉来说,面试主要看几点:项目经验+基本技术+个人潜力。项目经验主要是看你的工作年限+你懂的技术,所以无论怎么说技术才是最重要的,如果你的技术不足那么你现在就要想好自己还要不要继续走上Java程序员 这条路,如果答案是YES那么就要去补给你的知识技术系统了。

下面是我收藏的一个系统化学习的课程体系,对源码分析、性能优化、微服务架构、工程化、分布式。当然也有你们最需要的模拟面试java学习交流群:180705916