我的百度研发面经(四个部门,八次面试,内附参考答案)-小专栏

undo日志用来回滚redo日志用来重放redolog用来保证事务的持久性,undolog用来帮主事务回滚及MVCC的功能。

隔离性通过隔离级别来实现,不同隔离级别有不同的处理方式,可以使用锁、MVCC等机制来保证隔离性

说了用数组排序,问复杂度,扯了半天。

怎么优化,按照数字特征顺序打印,问这个东西和什么结构比较像。提示是树,然后说了个多叉树,问我怎么实现,最后其实使用dfs遍历树的每个分支。

我说了用cyclicbarrier实现,互相等待await。

然后他问我怎么用信号量实现,并且提示可以再用一个线程。

然后我说了个方案。

改成尾递归或者循环。面试官说不是,引导说用栈实现递归。问我栈中需要压入哪些数据。他说应该是方法参数,返回值,以及返回地址。

负载均衡算法主要包括:轮询、加群轮询、随机、一致性哈希等算法

memcache推出了一个叫做一致性哈希的算法,一个哈希环,环上支持2^32次方个节点,也就是包含了所有的ip。

然后我们把主机通过hash值分布到这个环上,请求到来时会映射到某一个节点,如果该节点没有主机,则顺时针寻找真正主机。

当节点加入或者节点删除时,并不会影响服务的可用性,只是某些请求会被映射到别的节点。

但是当请求集中到某个区域时,会产生倾斜,我们引入了虚拟节点来改善这个问题,虚拟节点对应到真实节点,所以加入虚拟节点可以更好地转移请求。

请参考腾讯面经里的这个问题。

mysql数据库可以通过binlog来完成主从复制,binlog是mysql的数据库二进制日志,用于记录数据库中的每一条读写操作,主从复制就是基于这一日志进行的,主库通过另一个进程和从库建立网络连接,并且把binlog数据不断地发送给从库,从库读取主库发过来的日志,在此时叫做relaylog也就是中转日志,并且在从库进行重放即可。

当网络环境异常时就容易出现数据不一致,解决办法是使用从库前先把主库和从库进行数据同步。

不了解,因为这个部门是做数据库研发的,所以才问这么刁钻的问题

8Linux查看cpu占用率高的进程

top

netstat查看占用某端口的进程lsof-i+特定命令可以查看某进程监听的端口

((2[0-4]\d|25[0-5]|[01]\d\d)\.){3}(2[0-4]\d|25[0-5]|[01]\d\d)

数据库部门真的很严格,问题都挺难的。

Linux,说一下Linux排查问题常用的命令,ps,top,netstat,free,du等等

说了lru和fifo,问我lru有什么缺点,没答上来。

讲了一下inode节点,文件和目录的原理。他问我了不了解具体的文件系统ext2,ext3,答不会。。

内存模型老生常谈了,主要就是线程共享的堆区,方法区,本地方法栈。还有线程私有的虚拟机栈和程序计数器。

堆区存放所有对象,每个对象有一个地址,Java类jvm初始化时加载到方法区,而后会在堆区中生成一个Class对象,来负责这个类所有实例的实例化。

栈区存放的是栈帧结构,栈帧是一段内存空间,包括参数列表,返回地址,局部变量表等,局部变量表由一堆slot组成,slot的大小固定,根据变量的数据类型决定需要用到几个slot。

方法区存放类的元数据,将原来的字面量转换成引用,当然,方法区也提供常量池,常量池存放-128到127的数字类型的包装类。字符串常量池则会存放使用intern的字符串变量。

停止复制,存活对象少时适用,缺点是需要两倍空间。标记清除,存活对象多时适用,但是容易产生随便。标记整理,存活对象少时适用,需要移动对象较多。

年轻代分为eden和survior,新对象分配在eden,当年轻代满时触发minorgc,存活对象移至survivor区,然后两个区互换,等待下一场gc,当对象存活的阈值达到设定值时进入老年代,大对象也会直接进入老年代。

老年代空间较大,当老年代空间不足以存放年轻代过来的对象时,开始进行fullgc。同时整理年轻代和老年代。一般年轻代使用停止复制,老年代使用标记清除。

单例单例模式保证全局的单例类只有一个实例,这样的话使用的时候直接获取即可,比如数据库的一个连接,Spring里的bean,都可以是单例的。

单例模式一般有5种写法。

第一种是饿汉模式,先把单例进行实例化,获取的时候通过静态方法直接获取即可。缺点是类加载后就完成了类的实例化,浪费部分空间。

第二种是饱汉模式,先把单例置为null,然后通过静态方法获取单例时再进行实例化,但是可能有多线程同时进行实例化,会出现并发问题。

第三种是逐步改进的方法,一开始可以用synchronized关键字进行同步,但是开销太大,而后改成使用volatile修饰单例,然后通过一次检查判断单例是否已初始化,如果未初始化就使用synchronized代码块,再次检查单例防止在这期间被初始化,而后才真正进行初始化。

第四种是使用静态内部类来实现,静态内部类只在被使用的时候才进行初始化,所以在内部类中进行单例的实例化,只有用到的时候才会运行实例化代码。然后外部类再通过静态方法返回静态内部类的单例即可。

第五种是枚举类,枚举类的底层实现其实也是内部类。枚举类确保每个类对象在全局是唯一的。所以保证它是单例,这个方法是最简单的。

应用场景

MyISAM适合:(1)做很多count的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。

InnoDB适合:(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,并且行锁定的机会比较大的情况。

想了好一会,orderbyiddesclimit10

union和unionall的区别是,union会自动压缩多个结果集合中的重复结果,而unionall则将所有的结果全部显示出来,不管是不是重复。

问我Redis怎么做集群,答了主从哨兵和cluster。Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。aof是采用追加日志的方式进行备份,特点是实时性高,但是消耗性能rdb是采用转储数据文件的方式进行备份,特点是可以备份大量数据,但是实时性差。

使用哨兵部署的问题是:哨兵模式解决的是一个redis副本的高可用问题,但是无法进行扩容。所以可以采用集群的方式来解决扩展性问题,Redis-cluster集群中每一个Redis副本都可以提供服务,并且集群中的每个Redis副本都是一个分片,存储的数据各不相同,同时它们都有一个哨兵节点来保证高可用,这样就可以既保证集群的高可用,也可以保证服务的伸缩性。

我说基本组件稍微了解过,简单搭过环境。

MapReduce是一种分而治之的算法,首先分片,然后让多个机器执行任务,最后合并。

hdfs是一个分布式文件系统,主要构成有两部分,namenode和datanode,namenode负责提供服务访问入口,datanode则用于实际存储数据。

hive是一个数据仓库,底层一般是hdfs分布式文件系统,通过把文件映射成表的方式,可以使用hivesql来操作hive中的数据。

hbase是一个分布式数据库,底层可以是hdfs这类分布式文件系统,hbase把每个列族分别进行存储,并且行数超过一定数量时会进行分片,这种特性使其在查询同一列的场景下速度很快。

sqoop用于在mysql和hive之间进行数据表和文件的转换。

flume用于连接日志输出和日志输入。

zookeeper是一个分布式协调工具,可以把服务结构转化为一个目录树,自身通过选主和zab协议保证服务可用性,作用是用于保证一个集群服务的高可用,同时可以实现服务注册中心的功能。

yarn是一个分布式的任务调度工具,用于把任务分派到多个节点,并且可以完成任务的跟踪、结果汇总,以及资源分配等功能,解放了原本需要负责这一切的jobtracker

我说是合并结果的,问我啥时候会用到,答不知道。

我答不知道,猜是会继续执行。。

我说拆成十份hash,每份两两比较hash的结果集,貌似他说OK。

我说用层次遍历记录节点高度。

我说布隆过滤器。

我没思路,瞎扯了一下加硬件,用内存存,都被驳回了。然后他说算了。

说了分片的方案,根据地址的hash值确定分片所在节点。

说不了解,感觉应该是问数据库的分布式方案。

全程50分钟,可以说是迄今为止难度最大的一个?

动态代理是在运行时通过反射获取代理类的实例,静态代理则是在代码中直接完成代理类的实现。

TCP是会根据数据流大小自动进行分包的,这一点是TCP传输协议的特性。那么TCP分包之后是否还会进行ip分片呢,这个主要看ip数据报是否超过了链路层规定的帧最大长度MTU,如果超过了,ip数据报是会进行分片的。

无限长轨道。两辆车同方向开,车会滴水,怎么让他们相遇。这题简直像脑筋急转弯。通过水滴判断车的速度,然后调整车速即可。

百度今年的提前批有点奇怪,好像都不走流程,牛客上好几个百度内推的帖子,我投了几个,基本上都是百度智能云的。然后这些部门都安排了面试,没有冲突,所以没有动静的小伙伴可以投投别的部门试试。下面是我的面经,目前就是这些了,每个部门侧重点不太一样。

THE END
1.行业首家!百度智能云甄知通过中国信通院大模型知识管理专项评估基于大模型的知识管理专项模块评估依据《基于大模型的智能应用评估方法 第1部分:知识管理》进行,总体涉及3个能力域,共计14个能力项,覆盖了数据处理、知识抽取、知识融合、知识推理、知识建模、知识库自动构建等流程,涵盖了智能搜索、智能问答、智能生成等智能应用。三大维度测评全通关百度智能云甄知产品优势突出 可信https://baijiahao.baidu.com/s?id=1792942041660129334&wfr=spider&for=pc
2.百度图床带数据库版本.zip百度图床带数据库版本.zip评分: 百度图床源码附带数据库版,数据库配置config.php配置好之后导入数据库文件bd.sql,然后就可以了,学习参考,不要做违法用途 php2020-05-05 上传大小:4KB 所需:10积分/C币 asp.net商城销售购物系统(源码+数据库).zip .net商城销售购物系统(源码+数据库).zip商城销售购物系统(源码+https://www.iteye.com/resource/huayula-12389447
3.数据库导航一、数据库简介: 百度文库是全球最大的中文文档分享平台,已收录有效专业文档2.07亿份。文档涉及教育、专业资料、实用文档、资格考试等领域;覆盖31个主流行业,共235个细分资料库,以及15个具有文库特色的在线专题库。 资源由5000家专业机构与30万专业人士提供,在资源的生产上奠定了资源的权威性及广度。 http://tsg.whvc.edu.cn/dn/database94.htm
4.百度热搜数据库种类,百度热搜数据库种类解析本文详细解析了百度热搜数据库的种类,包括实时热搜、日榜热搜、周榜热搜和月榜热搜等不同类型,帮助读者更好地了解和应用百度热搜数据进行选股研究和市场分析。 ,理想股票技术论坛https://www.55188.com/topics-1907686.html
5.百度图数据库的技术剖析和应用实践在ArchSummit深圳2018大会上,李玉明讲师做了《百度图数据库的技术剖析和应用实践》主题演讲,主要内容如下。 演讲简介: 互联网和信息技术渗透到各行各业生产海量的数据,人们逐渐开始关注数据的内在关联,这在知识图谱、推荐引擎、金融风控、公共安全和智能运维等场景中尤其显得重要。如何在海量的数据中发现有价值的关联信息https://www.infoq.cn/article/3ytwWesEKp4sUuOBXPXf
6.百度智能云数据库RDSMySQL读写分离数据库集群搭建专业化的高性能、高可靠云数据库服务,支持Mysql、SQL Server、PostgreSQL引擎,提供简易方便的Web界面管理、可靠的数据备份和恢复、完备的安全管理、完善的监控等功能。 云数据库SQL Server单机版发布!性能一致,价格减半!服务中心购买享受百度+天互双重服务! 立即咨询 产品https://www.idcs.cn/baidu/rds
7.百度Tera数据库介绍——类似cassandra,levelDB百度的链接处理系统每天处理万亿级的超链数据,在过去,这是一系列Mapreduce的批量过程,对时效性收录很不友好。在新一代搜索引擎架构设计中,我们采用流式、增量处理替代了之前的批量、全量处理。链接从被发现到存入链接库再到被调度程序选出,变成一个全实时的过程。在这个实时处理过程中,无论链接的入库还是选取,都需要https://blog.51cto.com/u_11908275/6385985
8.数据库与大数据架构设计课程详情架构作为技术与业务的融合剂,好的架构可以更好的支持业务对技术的需求,本课程重点围绕数据库架构设计特点,针对过往架构的对比分析,给学员更加直接的感受;更多的行业成功架构案例的分享,对大家学习掌握数据架构起到更好的借鉴作用。 一、百度数据库架构演变与设计 主题介绍:百度数据库架构经历了从分散式-》集中式-》分https://edu.itpub.net/course/10038.html
9.百度网盘为什么是数据库帆软数字化转型知识库百度网盘不是数据库,而是一个云存储服务。百度网盘主要用于存储、备份和分享文件,而数据库是用于存储、管理和检索数据的一种系统。这两者在功能、用途和技术实现上有本质的区别。百度网盘提供了大容量存储、便捷的文件共享、数据备份等功能,而数据库则提供了数据的结构化存储、高效的查询和事务处理等功能。特别是,百度https://www.fanruan.com/blog/article/301634/
10.百度收购知名医疗信息数据库,还要与AI文心一言结合界面新闻近日,据《中国证券报》等多家媒体报道,百度公司已经完成对中国医疗信息数据提供商GBI并购,GBI最核心的资产即为海量的药械数据。 GBI主要有三款数据库,也就是SOURCE全球药品数据库、METRIX研究人员数据库、DEVINT医疗器械数据库。其中,SOURCE全球数据库包括药品上市前全球临床试验进展、药品专利、靶点等情况;上市后招标、https://www.jiemian.com/article/8903864.html
11.数据库软件数据库软件报价及图片大全ZOL中关村在线提供数据库软件最新价格及经销商报价,包括数据库软件大全,数据库软件参数,数据库软件评测,数据库软件图片,数据库软件论坛等详细内容,为您购买数据库软件提供全面参考https://detail.zol.com.cn/data-base/
12.我打算进入中国百度的外文数据库工作的翻译是:J'ail'intentionaIS4 Crossover to our requirements for rework IS4 天桥到我们的重新工作的要求 [translate] a我打算进入中国百度的外文数据库工作 J'ai projeté écrit les cent travaux chinois de base de données de langue étrangère de degré [translate] http://eyu.zaixian-fanyi.com/fan_yi_10204701
13.baidu百度poi数据库,全国商家加油站公交站社区学校医院baidu百度poi,google谷歌poi数据库全国商家、医院、银行、加油站、学校、楼宇、公交等数据 浏览:65 4星 · 用户满意度95% baidu百度poi,google谷歌poi数据库全国商家、医院、银行、加油站、学校、楼宇、公交数据.数据包含名称、地址、电话、经纬度等,是地图开发、移动互联网等必不可少的数据库! https://download.csdn.net/detail/lbsgps/7380867
14.百度智能运维AIOps培训课程1.百度数据库运维体系及技术 对百度多年的数据库运维进行总结,从服务接入、服务上线和服务保障等过程系;统地介绍了百度数据库的运维体系,并重点介绍了数据库的准入规范与优化、灾备服务、监控解决方案、应急故障处理和数据库高可用解决方案等几个关键的运维子方向。在各个子方向中,由浅入深地从背景问题、实践经验进行http://www.info-soft.cn/e/action/ShowInfo.php?classid=90&id=4258
15.数据库链接池HikariCPDruid百度百科 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 https://developer.aliyun.com/article/1416246
16.百度地图poi数据,全国商户数据,全国热点数据免费下载数据库百度poi,baidu百度地图poi数据,全国商户数据,全国热点数据免费下载 数据库 - Oracle Re**tm上传40.35MB文件格式rar百度poi百度全国数据baidu热点数据 百度地图全国共2000万以上的数据库文件,包含名称、电话、地址、经纬度、城市等信息,是移动开发必不可少的数据资源! (0)踩踩(0) 所需:1积分https://www.coder100.com/index/index/content/id/2372780