strcmp可以比较数组么_大家都用过百度云,但你面试过百度云么

作者:黄小斜

百度研发面经

百度智能云

软件研发工程师

a5a420fa9574fda3011c86ee2b0b83fd.png

百度智能云研发岗

好像是做控制台方面的组

一面:

1自我介绍,项目

2 static关键字有什么用,static修饰不同东西时有什么作用,内部类用static修饰和不用static修饰有何区别。

3 hashmap,hashtable,concurrenthashmap区别和场景

4 volatile关键字有什么用

5 jvm分区讲下,作用讲下,gc算法讲一下,gc是否会有停顿或者延迟。

6 讲一下OOM和内存泄漏的例子,为什么有GC还会出现内存泄漏和内存溢出呢

7 线程和进程的区别,通信方式的区别。

8 悲观锁和乐观锁,说一下Java和数据库分别怎么实现的。

9 数据库索引说一下,除了B+树索引还有什么索引。

10倒排索引说一下,如果关键字很多,怎么优化。使用前缀树和hashmap优化。

11 前缀树的结构和原理说一下。

12 浏览器发起http请求过程,越详细越好。

13 缓存和数据库的一致性怎么保证

14 网上写代码,写了一个快排

15 没了。

4cb54249ad23eee6f1d5535be254ea59.png

二面:

1 自我介绍

2 项目中难点,用到的技术

3 多线程,说一下线程的状态和状态转换,详细问

4 多线程的sleep方法和wait方法为什么来源不同,一个是object方法,一个是Thread的方法。

5 为什么object的wait和notify必须在同步块中使用,不在同步块使用会报错么,编译报错还是运行报错。

6 jvm讲一下gc吧,两个对象的引用循环依赖,会不会被垃圾回收,什么情况下会什么情况下不会呢

7 GC root是哪些位置呢,我说记不起来,他说你不用记,其实就是运行时的一些对象和变量,比如局部变量表,方法区的元数据比如fianl,static变量,本地方法栈执行的方法。

8 数据库了解哪个。Redis说一下为什么是单线程的,不会很慢么,有什么好处。

9 Redis的IO请求模型,是不是IO多路复用呢。

10 Spring的interceptor和filter有什么区别。我说没区别,错!

11 网络这块,说一下dns请求的过程吧,dns是否会访问缓存呢,缓存在本地和浏览器,还有dns服务器上是不是都有。

12 get和post的区别讲一下,底层的实现有区别么,都是基于TCP,那么如何限制get的url长度,在哪一层限制的。

13 数据结构熟么,讲一下树和图吧,树的层次遍历使用什么结构,相应的图的遍历呢。讲讲最小生成算法,还有迪杰斯特拉。

14 数组,找到唯一一个出现两次的数。

刚开始听错,说了位运算。

a 然后讲了数组计数,hash计数,排序比较。

b 然后面试官说条件给的是1到N-1的N个数字,重新想一下。

c 说了根据数组位置和数字比较进行判断。面试官最后说可以用相加求差值来判断。

15 一个10000以下的数组,内存够。里面只有1,2,3。排下序。

a 普通排序O(nlogn)

b 荷兰旗问题,双指针解决。O(N)

c 统计数量,重放数组O(2N)

d 另外搞一个数组,把1放头,3放尾,也是双指针。O(N)。空间复杂度O(N)

16 没了。

全程50分钟

08889068969464540f7c48204dacde1a.png

三面HR

巴拉巴拉巴拉。基本上问题都大同小异。

百度智能云 数据库部门

一面:

1 数据库的事务,四个性质说一下,分别有什么用,怎么实现的。一致性没讲好。

2 讲到了redo和undo日志,问我分别有什么用,说redo日志说错了。

3 数据库的隔离性如何保证,使用悲观锁和乐观锁有何区别。MVCC的设计目的是什么,怎么使用版本号判断数据的可见性。

4 问了一道算法,1到N的所有数字,按照字典序打印,怎么做。

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

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

5 多线程并发的同步实现,有两个方法,每个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,并且让他们运行完a部分代码再一起向下执行,如何实现。

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

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

然后我说了个方案。

7 问了项目

8 如何把优化递归的代码

改成尾递归或者循环。

面试官说不是,引导说用栈实现递归。

问我栈中需要压入哪些数据。他说应该是方法参数,返回值,以及返回地址。

b850233fe65bb5c2aa26053459b9b0f4.png

二面:

1 自我介绍,项目 10分钟过去

2 服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器。

3 TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。

4 数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决。

5 今天面试太多了,记不清了。。。

6 开源的技术看过用过么,分布式存储的了解么。

7 想做什么方向的开发。

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

9 查看占用某端口的进程和某进程监听的端口

10 如何查询日志文件中的所有ip,正则表达式

a5f775c80ad75b83a874eec4bad4cbe7.png

三面(8.3号更新):

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

1 讲一下项目

2 平时了解什么操作系统

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

3 Linux的内存管理算法,问了一下是不是页面置换算法,他说是。

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

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

5 进程通信方式有哪些,问我分别怎么使用,管道有哪些类型,各有什么优缺点。

6 问我服务器硬件了解么。。一脸懵逼,问了我懂不懂Raid,瞎扯了几句就说不懂了。

7 shell了解么,没怎么写过。

8 听说你会Java,说一下JVM内存模型把,有哪些区,分别干什么的

9 说一下gc算法,分代回收说下。

10 设计模式了解么,说了7种,问我分别怎么用,实际应用过吗,稍微扯了一下。

11 MySQL的引擎讲一下,有什么区别,使用场景呢。

12 查询最新的10条数据,想了好一会,order by id desc limit 10

13 MySQL的union all和union有什么区别,我瞎掰了一下,应该不对。

14 MySQL有哪几种join方式,底层原理是什么,答不会,只知道表现形式。

15 Redis了解哪些啊,数据结构和基本原理把。

问我Redis怎么做集群,答了主从哨兵和cluster。

Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。

16 Redis使用哨兵部署会有什么问题,我说需要扩容的话还是得集群部署。

17 分布式系统了解么,说一下Hadoop了解啥。

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

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

19 Hadoop分发任务时,有个job失败了,hadoop会怎么处理,我答不知道,猜是会继续执行。。

20 hadoop分发任务,如果有一个节点特别慢拉慢了整体速度怎么办。我猜测是通过yarn分配相同的资源给每个任务,可以避免这种情况,他好像不太满意。

21 hadoop答得很烂。问了我两个10g文件比较,2g内存,重复率很高,筛选出不同的内容。我说拆成十份hash,每份两两比较hash的结果集,貌似他说OK。

22 排序算法了解哪些,巴拉巴拉。

23 用队列计算一个树的高度,我说用层次遍历记录节点高度。

24 一个黑名单集合,数据量很大,快速查询一个值是否在集合里,怎么设计,我说布隆过滤器。

25 还是上一题,说这个黑名单可能需要动态地增删改,如何设计才能避免访问响应太慢。我没思路,瞎扯了一下加硬件,用内存存,都被驳回了。然后他说算了。

26 上一题的黑名单做成分布式,怎么做。说了分片的方案,根据地址的hash值确定分片所在节点。

27 分布式数据库了解么,我不太明白他问的是啥,说不了解,感觉应该是问数据库的分布式方案。

28 有什么想问的,据他所说还有2-3轮面试,惊了。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode785. 判断二分图(dfs和bfs染色)

给定一个无向图graph,当这个图为二分图时返回true。 如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。 graph将会以邻接表方式给出…

bdd cucumber_如何使用BDD构建坚如磐石的Ruby on Rails应用

bdd cucumberby Marko Anastasov通过Marko Anastasov 如何使用BDD构建坚如磐石的Ruby on Rails应用 (How to build rock-solid Ruby on Rails apps with BDD) 了解通过行为驱动开发来构建可持续Web应用程序的最佳实践。 (Learn best practices for building sustainable web a…

go kegg_KEGG分析及可视化

上一篇推文中我们解释了GO富集分析及可视化(GO富集分析及可视化),除了GO富集分析,我们经常在paper中看到KEGG分析,KEGG是什么呢,Kyoto Encyclopedia of Genes and Genomes,京都基因和基因组百科…

IntelliJ IDEA注册码

IntelliJ IDEA注册码 http://idea.lanyus.com/ 1.导航栏下 2.help下 3.register点击 4.单选Activation code 5.粘贴注册码 转载于:https://www.cnblogs.com/YUJIE666/p/10662561.html

单词本.

offset 偏移量 charset字符集 str 代表String字符串 IgnoreCase忽略大小写 Object 对象 argument 参数 if and only if:当且仅当 value:值 specified:指定 Parameters:参数 iterator:迭代器 invoke:调用 variable:变量 resolved:解决 sequnence 序列 default:默认转载于:http…

leetcode931. 下降路径最小和(动态规划)

给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和。 下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列。 示例: 输入:[[1,2,3],[4,5,6],[7,8,9…

lvm使用

注:新添加的硬盘,如果没有分区,可以直接使用pvcreate进行创建,然后用vgextend进行扩展如果新添加的硬盘经过分区,则要把需要扩展的分区修改为8e格式,则进行扩展以上内容实测~相关概念:pv:物理卷…

python django用户登录系统_Django实现用户注册登录

学习Django中:试着着写一个用户注册登录系统,开始搞事情 O(∩_∩)O哈哈~Ubuntupython 2.7.12Django 1.10.4IDE:PycharmBootstrap(其实没怎么用~~)新建项目:(我是直接用pycharm直接生成的)使用终端:(创建项目)django-ad…

ubantu 添加防火墙策略_ubuntu安装防火墙并策略配置

1、安装ubuntu防火墙sudo apt-get install ufw启用sudo ufw enablesudo ufw default deny作用:开启了防火墙并随系统启动同时关闭所有外部对本机的访问(本机访问外部正常)。关闭sudo ufw disable查看防火墙状态sudo ufw status2、开启/禁用相应端口或服务举例sudo u…

如何使用React Native构建嵌套的抽屉菜单

by Dhruvdutt Jadhav由Dhruvdutt Jadhav 如何使用React Native构建嵌套的抽屉菜单 (How to build a nested drawer menu with React Native) Screen space is a precious commodity on mobile. The drawer menu (or “hamburger menu”) is one of the most popular navigatio…

c# WebApi之接口返回类型详解

c# WebApi之接口返回类型详解 https://blog.csdn.net/lwpoor123/article/details/78644998 转载于:https://www.cnblogs.com/hwubin5/p/10665006.html

第十一次作业

1。题目&#xff1a; 输入一个字符串&#xff0c;统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组 代码 #include<stdio.h> #define n 100 int main() {char a[n];int i,a10,b0,c0,d0;printf("输入字符串&#xff1a;\n");gets(a);for(i…

Python Configparser模块读取、写入配置文件

写代码中需要用到读取配置&#xff0c;最近在写python&#xff0c;记录一下。 如下&#xff0c;假设有这样的配置。 [db] db_host127.0.0.1 db_port3306 db_userroot db_pass [concurrent] thread200 processor400 可以使用ConfigParser模块来读取、写入配置…

leetcode714. 买卖股票的最佳时机含手续费(动态规划)

给定一个整数数组 prices&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 &#xff1b;非负整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易&#xff0c;但是你每笔交易都需要付手续费。如果你已经购买了一个股票&#xff0c;在卖出它之前你就不能再继续购买…

宁宛 机器人_全文阅读 .007 忠犬机器人

全文阅读 .007 忠犬机器人”其实光看i5高大的身躯、泛着金属光泽的外壳&#xff0c;很难想象它能把照顾人的事情做的那么细致。这张同样自带程序的金属床在i5的操作下&#xff0c;根据宁宛自身的体重及骨密度&#xff0c;调整出最适合她的硬度、角度及凹陷程度。空间跳跃……早…

servlet中文乱码_10分钟快速掌握Servlet相关基础知识

Servlet的学习路线1、 创建Servlet2、 Servlet的相关配置3、 Servlet的生命周期4、 HttpServletRequest接口5、 HttpServletResponse接口6、 HttpSession接口7、 Filter、Listener接口Servlet的相关配置1、 创建Servlet extends HttpServlet2、 配置Serlvet第1种配置方式: web.…

盖茨比乔布斯_如何使用盖茨比创建您的博客并通过手机进行处理

盖茨比乔布斯by Hu Chen胡Hu 如何使用盖茨比创建您的博客并通过手机进行处理 (How to use Gatsby to create your blog and work on it from your phone) Recently, I decided to migrate my blog to Gatsby. Gatsby is a blazing fast static site generator based on React.…

python之collections之有序字典(OrderedDict)

一、定义OrderedDict是对字典的补充&#xff0c;它记住了字典元素的添加顺序。eg&#xff1a; 二、OrderedDict相关方法def clear(self): # real signature unknown; restored from __doc__ """     od.clear() -> None. Remove all items from od. …

进阶4:hive 安装

安装包&#xff1a; apache-hive-2.1.1-bin.tar.gz 安装步骤&#xff1a; 1.上传 apache-hive-2.1.1-bin.tar.gz 到linux; 2.解压文件&#xff1a; tar zxvf apache-hive-2.1.1-bin.tar.gz 3.安装mysql (仅支持mysql 5.7以下版本&#xff0c;不支持5.7或更高版本&#xff0c…

macbookpro接口叫什么_【科普】什么是雷电接口?苹果电脑MACBOOK PRO有吗?

刚接触笔记本的朋友不知道USB-C口是什么,也不知道雷电接口(Thunderbolt)是什么,只知道MACBOOK PRO有雷电3接口。简单来说 雷电接口是USB TYPE-C的替代模式,在此了解【什么是USB TYPE-C】 什么是雷电接口? 借用百度百科的表达 2011年2月24日,英特尔发布了长期以来广为宣传的…